当我运行这个程序时,它给了我一个“?” 对于 unicode 代码点\u0508。这是因为默认的 windows 字符编码 CP-1252 无法映射此代码点。
但是当我在 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();
}
}
}