2

同じファイルに英語、日本語、韓国語を書き込もうとしています。

これが私がすることです:

new File("genned/test123.txt").write("안녕하세요 hello こんにち", "utf8")

結果のファイルには、�壱��們┷��hello縲�%繧薙↓縺。

韓国語と日本語が正しく表示されるようにするには、どうすればよいですか?

更新:私はこれを試しました:

File file = new File("genned/test123.txt");
PrintWriter out = new PrintWriter(new OutputStreamWriter(
    new FileOutputStream(file), "UTF-8"));
out.println("日本");
out.close();

出力は次のとおりです。譌・譛ャ

そして、16進エディタで表示されたバイトは次のとおりです。E8 AD 8C EF BD A5 E8 AD 9B EF BD AC 0A

アップデート:

文字列を印刷しようとすると"\u65E5\u672C"、ファイルは文字列で正しく終了します日本

4

1 に答える 1

6

エディタJavaコンパイラのエンコーディングが同じ「UTF-8」であることを確認してください。

File file = new File("genned/test123.txt");
PrintWriter out = new PrintWriter(new OutputStreamWriter(
    new FileOutputStream(file), "UTF-8"));
out.println("안하세요 hello こんにち");
out.close();

更新後:

ソースがUTF-8にあることを確認します。たとえば、多くのエンコーディングを備えた無料のプログラマーエディタであるJEditを使用します。そして、でコンパイルしjavac -encoding UTF-8 ...ます。

私の推測では、エディターは大丈夫だと思います(日本語と韓国語の両方を表すため、コンパイラーはデフォルトのプラットフォームオペレーティングシステムエンコーディングを使用している可能性があります。

eclipseを使用している場合は、Windows/設定/一般/ワークスペース/テキストファイルのエンコーディングを確認してください。そしてプロジェクト設定。

于 2013-02-24T22:51:17.827 に答える