私は入力ファイルを定義されたエンコーディング(utf8)で持っています。このファイルから名前と内容(utf8)を入力ファイルから作ります。ファイル名のエンコーディングを設定する
私の問題は、特定のWindowsシステムで、作成されたファイルに正しい文字がないことです。これらのファイルの内容は完全に読み込み可能ですが、その名前は完全ではありません。 Ü.xml
の代わりに、ファイル名は├£.xml
です。
他のWindowsシステムでは、すべて正常に動作します。
ファイルコンテンツのエンコーディングはOutputStreamWriter
の2番目の引数で設定できますが、ファイル名のエンコーディングはnew File(name)
で設定できません。
ありがとうございました。
'Ü.xml'を手動でそのWindowsシステムにコピーするとどうなりますか?どちらのシステムでもJVMのデフォルトのエンコーディングは何ですか? – Thomas
手動でのコピーが機能します。 'System.getProperty(" file.encoding ")'は両方とも "Cp1252"です。 – stracktracer
フィードバックありがとうございます。ファイルがJavaの実行によって正しく生成されるため、問題はメイヴン問題であることが判明しましたが、メイヴンがそれらをjarファイルにパッケージ化するときにのみ問題が存在します。参照:http://stackoverflow.com/questions/9258347/file-name-encoding-in-jar – stracktracer