我已经尝试了几个小时来弄清楚为什么,当通过扫描仪在控制台中输入像 Ø 这样的字符,然后获取数值时,我总是以 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)

即您的字符在您使用的字符编码中没有被正确解释,因此被后备值替换。

10-07 13:21