10代と話して驚いたこと

お世話になります。

日本語ファイル名のFTPを行っているのですが、ファイル名が文字化けして困っております。
解決策をご存知の方が、いらっしゃいましたら解決するための情報を頂けますでしょうか。

私が、使用しているのは、以下の環境となります。

【サーバ環境(FTP元、FTP先ともに同様となります。】
centOS5.5.
jdk1.6

ftpを行う際、以下のようにして文字コード、転送モードを指定しております。
fp.setFileType(FTPClient.BINARY_FILE_TYPE);
fp.setControlEncoding("UTF-8");

// ファイル送信
is = new FileInputStream(clientFilePath);// クライアント側
fp.storeFile(putFilePath, is);// サーバー側

String putFileNm = new File(putFilePath).getName();
String parentPath = new File(putFilePath).getParent();
String[] flist = fp.listNames(parentPath);
for(int i=0; i<flist.length; i++) {
if(putFileNm.equals(new File(flist[i]).getName())){
return true;
}
}

FTP元、FTP先のサーバの文字コードも
echo $LANGで確認しましたが、両方とも「ja_JP.UTF-8」になっております。

お手数お掛け致しますが、ご教授の程よろしくお願い致します。

以上、よろしくお願い致します。

A 回答 (2件)

確認する環境がないので


すごくてきとーに言ってしまうこと
最初に謝るわね。

JavaのソースをUTF-8で書いてみるとか
実行オプションでUTF-8指定してみるとかどうかしら。

それと文字化けは具体的にどんな文字に?
もしかして復元可能だったりしないかなと。

いっそのこと
取得後名前を変えればいいんじゃないかしら
と思ってみる。
    • good
    • 0
この回答へのお礼

ご意見ありがとうございます。

文字化けは、日本語部分が「?(半角)」になってしまっています。
例)53ああああ.dat ⇒ 53????.dat

とりあえず実行オプションでUTF-8指定ってのを試してみます。
お忙しい中、ありがとうございました。m(_ _)m

お礼日時:2011/06/24 13:46

俺も確認環境がないのに無根拠に言ってみる。



*自分ので動作させてみる
*正常に動作するFTPクライアントで実験してみる
*上記二つでネットワーク上を流れるデータをWireSharkなどで確認。バイト列に差があるか見る、とか自分はやってみると思う。(ネットワーク上流れるデータ同じなら結果おなじになるだろって)

**例えば、実はsetControlEncodingを呼ぶ、connectの前でなければならないとか…
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報