收到 65533 作为字符的 char 值(à、Ø、æ、æ 等)!

pha*_*dam 4 java short char

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

Alo*_*hci 6

65533 = Unicode 字符“替换字符”(U+FFFD)

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