我尝试System.out.println("ñ");
并打印ñ
。为什么javac没有遇到错误?
答案 0 :(得分:1)
Javac可以配置为具有源文件编码。这样,您可以将字符文字(和符号名称!)与非ASCII字符一起使用。
如果它与文件编码实际匹配,那么一切正常。
如果没有,您可能会收到错误,但更有可能是错误的字符串。
为了再次打印文本,程序还需要知道打印时要使用的编码。所有这些都需要正确配置(Java中的默认值不可移植),否则您可以获得各种破碎的文本输出。
答案 1 :(得分:1)
Java char
和 String
本身采用UTF-16格式。它可以处理'ñ'和“ñ”。
JLS-3.1. Unicode说(部分),
Java编程语言使用UTF-16编码表示16位代码单元序列中的文本。
由JLS-3.2. Lexical Structure进行了扩展,解释了
使用以下三个词汇翻译步骤将原始Unicode字符流转换为一系列标记,这些步骤依次应用: