- PR -

FTPClientでのファイル名

1
投稿者投稿内容
レオ
常連さん
会議室デビュー日: 2006/10/14
投稿数: 21
投稿日時: 2007-10-17 14:16
お世話になっております。

現在、Jakarta commons.net のFTPClientを用いたファイル転送
プログラムを作成しております。
FTPサーバ(Linux)に対して、ファイル名に日本語および全角文字を
含むファイルを転送したいのですが、全角文字(例えば、ハイフン)
が化けてしまいます。

日本語の文字化けについては、setControlEncoding()でエンコード
指定することで対処できそうなことは分かったのですが、全角の
文字化けに対して対処する策はありますでしょうか?

よろしくお願いいたします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-10-17 14:44
引用:

レオさんの書き込み (2007-10-17 14:16) より:
日本語の文字化けについては、setControlEncoding()でエンコード
指定することで対処できそうなことは分かったのですが、全角の
文字化けに対して対処する策はありますでしょうか?



「日本語の文字化け」と「全角の文字化け」は違うものなのですか?
何が問題なのかよくわからないのですが。
レオ
常連さん
会議室デビュー日: 2006/10/14
投稿数: 21
投稿日時: 2007-10-17 15:34
以下に実際にファイル転送を試して見た状況を記述いたします。

・FTPサーバ(Linux)のシステムの文字コードが
LANG="ja_JP.eucJP"
となっている。

・日本語−テスト.txt という名のファイルを転送する。

1. setControlEncoding() を呼び出しせず(エンコード指定せず)転送
→ 文字化けする。 (???????.txt)
2. setControlEncoding("euc_jp")でエンコード指定して転送
→ ハイフン(全角)の箇所が化ける。 (日本語?テスト.txt)

という状況です。

[ メッセージ編集済み 編集者: レオ 編集日時 2007-10-17 16:53 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-10-17 15:48
はっきりしたことはいえませんが、全角ハイフンが化けるとなると
Unicodeのベンダ依存マッピングの件のような気がしますね。

http://www.ingrid.org/java/i18n/unicode.html
レオ
常連さん
会議室デビュー日: 2006/10/14
投稿数: 21
投稿日時: 2007-10-18 09:39
nagise様、レスポンスありがとうございます。

引用:

nagiseさんの書き込み (2007-10-17 15:48) より:
はっきりしたことはいえませんが、全角ハイフンが化けるとなると
Unicodeのベンダ依存マッピングの件のような気がしますね。

http://www.ingrid.org/java/i18n/unicode.html



ご指摘の通り、Unicodeのマッピングの問題だったようです。
FTPClientのファイル転送メソッド storeFile(String, InputStream)
の第1引数 (転送ファイル名) で、文字列中の "−" などのコードを
予め変えた ("0xff0d" → "0x2212" といった感じで) 文字列を指定した
ところ文字化けせず表示されるようになりました。

# あまり根本的な解決策ではないような気もしますが。。
1

スキルアップ/キャリアアップ(JOB@IT)