当我运行这个程序时,Unicode代码点\u0508会显示为问号'?'。这是因为默认的Windows字符编码CP-1252无法映射该代码点。
但是,当我在Eclipse中将此文件保存为'Text file encoding' = UTF-8并运行此程序时,它会给出正确的输出AԈC。
为什么会这样呢?我的意思是,Java文件保存为UTF-8,但底层的Windows操作系统编码仍然是CP-1252。我的问题类似于,当我尝试读取一个以UTF-8编写的文本文件时,它的编码格式为UTF-16,输出结果出现了不同的方框符号。
但是,当我在Eclipse中将此文件保存为'Text file encoding' = UTF-8并运行此程序时,它会给出正确的输出AԈC。
为什么会这样呢?我的意思是,Java文件保存为UTF-8,但底层的Windows操作系统编码仍然是CP-1252。我的问题类似于,当我尝试读取一个以UTF-8编写的文本文件时,它的编码格式为UTF-16,输出结果出现了不同的方框符号。
public class e {
public static void main(String[] args) {
System.out.println(System.getProperty("file.encoding"));
String original = new String("A" + "\u0508" + "C");
try {
System.out.println("original = " + original);
} catch (Exception e) {
e.printStackTrace();
}
}
}