- - PR -
FTPClientでのファイル名
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-10-17 14:16
お世話になっております。
現在、Jakarta commons.net のFTPClientを用いたファイル転送 プログラムを作成しております。 FTPサーバ(Linux)に対して、ファイル名に日本語および全角文字を 含むファイルを転送したいのですが、全角文字(例えば、ハイフン) が化けてしまいます。 日本語の文字化けについては、setControlEncoding()でエンコード 指定することで対処できそうなことは分かったのですが、全角の 文字化けに対して対処する策はありますでしょうか? よろしくお願いいたします。 | ||||
|
投稿日時: 2007-10-17 14:44
「日本語の文字化け」と「全角の文字化け」は違うものなのですか? 何が問題なのかよくわからないのですが。 | ||||
|
投稿日時: 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 ] | ||||
|
投稿日時: 2007-10-17 15:48
はっきりしたことはいえませんが、全角ハイフンが化けるとなると
Unicodeのベンダ依存マッピングの件のような気がしますね。 http://www.ingrid.org/java/i18n/unicode.html | ||||
|
投稿日時: 2007-10-18 09:39
nagise様、レスポンスありがとうございます。
ご指摘の通り、Unicodeのマッピングの問題だったようです。 FTPClientのファイル転送メソッド storeFile(String, InputStream) の第1引数 (転送ファイル名) で、文字列中の "−" などのコードを 予め変えた ("0xff0d" → "0x2212" といった感じで) 文字列を指定した ところ文字化けせず表示されるようになりました。 # あまり根本的な解決策ではないような気もしますが。。 |
1