【发布时间】:2023-04-03 22:15:01
【问题描述】:
我正在使用 FileWriter 对象将一些文本写入文件。我指定我希望输出为 UTF-8,但是当我打开文本文件并保存为时,我看到它是 ANSI 编码。
我还想补充一点,当有标准 ascii 字符集以外的字符(例如:- 日语字符)时,文件编码为 UTF-8,但没有文本文件编码为 ANSI。
File json_file= new File(path);
FileWriter json_file_output=newFileWriter(json_file,StandardCharsets.UTF_8);
json_file_output.write("SOME JSON TEXT HERE");
json_file_output.flush();
不知道是java代码还是记事本的原因。
感谢您的帮助。
【问题讨论】:
-
文本
SOME JSON TEXT HERE在 UTF-8 和 ASCII 中编码相同。向我们展示您的真实输入和结果。 -
记事本会自动检测编码吗?
-
我认为这是您的记事本问题(可能默认为 ASCII 码)。我用非 ascii (
x√ab c) 字符运行代码,文件写入正确。 -
我知道它会正确写入所有字符,但输出中只有 ascii 字符,当我看到“另存为”时,编码是 ANSI,尽管我指定输出为 Unicode。跨度>
-
这只是记事本的行为。您正在写出 UTF-8。试着用非 ASCII 字符写出文本,你会看到的。每个只包含 ASCII 字符的文件,无论是用 ASCII 编码还是 UTF-8 编码,都是一样的。
标签: java