3

フランス語のフォルダー ツリーがあります。フォルダ/ファイルを読んでいる間、éの代わりにéを返します。キャラクターを差し替えますが、良い解決策ではありません。どうすればこれを修正できますか? Googleでいくつかの回答を見つけましたが、役に立ちません。

ありがとう!

4

5 に答える 5

3

アプリケーションの起動時に、エンコーディングを utf-8 に設定します。

java -Dfile.encoding="UTF-8" YourMainClass

上記のリンクで述べたように、多くの Java クラスはエンコーディングをキャッシュすることに注意してください。したがって、実行時にエンコーディングを変更しても、関係するすべてのクラスには影響しない可能性があります。

別の質問の回答tchristからの説明をコピーします。

文字\N{LATIN SMALL LETTER E WITH ACUTE}はコードポイントU+00E9です。UTF-8 では、つまり\xC3\xA9.

U+00C3しかし、これらの 2 バイトを別のコード ポイントおよびとして扱うとU+00A9、それらはそれぞれ\N{LATIN CAPITAL LETTER A WITH TILDE}および\N{COPYRIGHT SIGN}になります。

于 2013-04-25T09:18:00.580 に答える
0

コードは正しいビットを表示しています — 間違っているのは、これらのビットを見るために使用しているものが、ビットが実際とは異なるエンコーディングであると伝えられていることです.

これは Java の問題ではありません。これは、Java 出力を見るために使用しているソフトウェアに問題があります。たとえば、端末のエンコーディングが、Java が出力する UTF-8 ではなく、ISO-8859-15 に設定されている場合があります。

外部世界用のすべて UTF-8 ワークフローと、抽象的な Unicode コード ポイントの内部世界を持つことは、非常に役立ちます。

入力を誤解している可能性があると思います。入力はUTF-8ですが、従来の8ビットエンコーディングであると誤解しています。しかし、私の最善の推測は、ディスプレイデバイス/プログラムのエンコーディングが正しく設定されていないということです。

于 2013-04-27T15:20:46.337 に答える