如何将Hangul(韩语)写入文件?

时间:2013-02-24 22:44:57

标签: java character-encoding

我正在尝试在同一档案中写出英语,日语和韩语。

这就是我的所作所为:

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"时,文件最终会以字符串日本

结束

1 个答案:

答案 0 :(得分: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文件编码。 和项目设置。