默认java文件。编码为Cp1252,但创建的文件为ISO-8859-1

问题描述 投票:2回答:2

我检查了jvm中的默认文件编码:

System.out.println("***file.encoding::" + System.getProperty("file.encoding")); 
// ***file.encoding::Cp1252

但是当我使用FileWriter编写新文件时:

bf = new BufferedWriter(new FileWriter(file));

然后,我使用cmd重新检查编码文件:

file -i output-file.txt
output-file.txt: text/plain; charset=iso-8859-1

为什么字符集不是Cp1252而不是iso-8859-1?

java iso-8859-1 writefile cp1252
2个回答
1
投票

我也遇到相同的问题,尝试了几次,但是没有用。


0
投票

cp1252和iso-8859-1是非常相似的编码,如果两个都是有效的编码,则file可能无法根据文件的内容来区分它们。

文本文件不包含有关文件编码的任何元数据,唯一知道的方法是读取一些字节并进行猜测。对于小于128的字节值(即,大多数普通的英语文本),两种编码方式是相同的,因此,如果文件中仅有这些字符,则无法确定是哪个文件用于写文件。

© www.soinside.com 2019 - 2024. All rights reserved.