フランス語のフォルダー ツリーがあります。フォルダ/ファイルを読んでいる間、éの代わりにéを返します。キャラクターを差し替えますが、良い解決策ではありません。どうすればこれを修正できますか? Googleでいくつかの回答を見つけましたが、役に立ちません。
ありがとう!
フランス語のフォルダー ツリーがあります。フォルダ/ファイルを読んでいる間、éの代わりにéを返します。キャラクターを差し替えますが、良い解決策ではありません。どうすればこれを修正できますか? Googleでいくつかの回答を見つけましたが、役に立ちません。
ありがとう!
アプリケーションの起動時に、エンコーディングを utf-8 に設定します。
java -Dfile.encoding="UTF-8" YourMainClass
上記のリンクで述べたように、多くの Java クラスはエンコーディングをキャッシュすることに注意してください。したがって、実行時にエンコーディングを変更しても、関係するすべてのクラスには影響しない可能性があります。
文字
\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}
になります。
コードは正しいビットを表示しています — 間違っているのは、これらのビットを見るために使用しているものが、ビットが実際とは異なるエンコーディングであると伝えられていることです.
これは Java の問題ではありません。これは、Java 出力を見るために使用しているソフトウェアに問題があります。たとえば、端末のエンコーディングが、Java が出力する UTF-8 ではなく、ISO-8859-15 に設定されている場合があります。
外部世界用のすべて UTF-8 ワークフローと、抽象的な Unicode コード ポイントの内部世界を持つことは、非常に役立ちます。
入力を誤解している可能性があると思います。入力はUTF-8ですが、従来の8ビットエンコーディングであると誤解しています。しかし、私の最善の推測は、ディスプレイデバイス/プログラムのエンコーディングが正しく設定されていないということです。