当我运行这个程序时,它会给我一个'?'对于 unicode 代码点 \u0508。这是因为默认的 windows 字符编码 CP-1252 无法映射此代码点。
但是当我在 Eclipse 中将此文件保存为“文本文件编码”= UTF-8 并运行此程序时,它会给我正确的输出 Adc。
为什么会这样?我的意思是 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();
}
}
}
最佳答案
将 Java 源文件保存为 UTF-8 或 Windows-1252 应该没有任何区别,因为这两种编码对所有 ASCII 代码点的编码方式相同。并且您的源文件仅使用 ASCII 字符。
因此,您应该尝试在其他地方找到错误。我建议重新执行您小心执行的步骤并重新进行测试。
关于java - 以 UTF-8 格式保存 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14077345/