我已经尝试了几个小时来弄清楚为什么,当通过扫描仪在控制台中输入像 Ø 这样的字符,然后获取数值时,我总是以 65533(无符号短的最大值)结束?
对于拉丁字符,情况似乎并非如此。知道为什么吗?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] chars = sc.next().toCharArray();
for(int i = 0; i < chars.length; i++){
System.out.println((int)chars[i]);
}
}
最佳答案
65533 = Unicode Character 'REPLACEMENT CHARACTER' (U+FFFD)
即您的字符在您使用的字符编码中没有被正确解释,因此被后备值替换。