- PR -

FTPClientを使って日本語ファイル名をPUT

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/07/30
投稿数: 2
投稿日時: 2007-07-30 12:20
FTPサーバーに日本語ファイル名であるファイルをアップロードしたいですが、
org.apache.commons.net.ftp.FTPClientのFTPClientを使ったらアップロードしたファイル名は文字化けになっています。
対処法についてご教示願えますでしょうか。

宜しくお願いします。

fp.connect("xxx.xxx.xxx.xx");
if (!FTPReply.isPositiveCompletion (fp.getReplyCode())) { // 異常終了 }
if (fp.login("login", "password") == false) { // ログインできたか? // 異常終了 }
reply = fp.getReplyCode();
String transferFile = new String("ファイル.zip");
FileInputStream is = new FileInputStream(transferFile);// クライアント側
fp.setFileType(fp.BINARY_FILE_TYPE);
if (!fp.storeFile("/DirA/" + transferFileName, is)) { // サーバー側
System.out.println("STOREFILE ERROR ");
}
is.close();
fp.disconnect();
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-30 13:15
FTPクラスのsetControlEncodingメソッドで指定できると思います。

※質問するときには、必ずバージョンなどの環境情報を書きましょう
未記入
会議室デビュー日: 2007/07/30
投稿数: 2
投稿日時: 2007-07-30 15:57
大変失礼しました。
JDK1.5, commons.net-1.4.1バージョンを使っています。
FTPサーバー→LINUXです

setControlEncodingメソッドを指定してみたんですけど、同じく文字化けになっています。
fp.setControlEncoding("SJIS");
他の対処法をご教示願えますでしょうか。

宜しくお願いします。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-07-30 16:37
引用:

FTPサーバー→LINUXです



サーバ側の文字コードに合わせないとダメなのでは?。
一般的に、サーバ側の環境に合わせるのがセオリーです。
1

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