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();

输出是:譌・譛ャ

并在十六进制编辑器中查看字节为: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 / Preferences / General / Workspace / Text file encoding。和项目设置。

于 2013-02-24T22:51:17.827 回答