java - 将外来字符写入.json文件,eclipse vs jar
问题描述
使用 Eclipse IDE 测试使用 Java 将数据写入 .json 和 .txt 文件,其中包含很少的外国(中文、印地语)字符。我可以成功写入 .txt ,其中 .json 显示 ascii 字符。代码片段:
try(BufferedWriter br = new BufferedWriter(new FileWriter(new File("test.json")))) {
JSONObject obj = new JSONObject();
obj.put("key", "Hello, ओ ो ु ऋ 样品");
String str = obj.toJSONString();
System.out.println(str);
br.write(str);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
.txt 的输出:{"key":"Hello, ओ ो ु ऋ 样品"}
.json 的输出:{"key":"Hello, ओ ो à¥� ऋ æ ·å“�"}
曾尝试使用DataOutputStream
写入数据。但结果是一样的。
在解码时,它可以解码为相同的外来字符并且看起来不错。在构建 jar 并运行与 .jar 文件相同的文件时不会给出相同的结果。写作和阅读都以 ascii 显示。是的,我知道在eclipse中文件保存为utf-8,这有助于编译。顺便说一句,我maven
用来构建罐子。
请帮助我解决方法。谢谢。