为什么我看不到Java中的Unicode字符
我正在学习java,我发现java中的字符范围为0-65536,java使用Unicode来表示字符。因此,我运行以下代码以查看所有字符是什么:为什么我看不到Java中的Unicode字符,java,unicode,Java,Unicode,我正在学习java,我发现java中的字符范围为0-65536,java使用Unicode来表示字符。因此,我运行以下代码以查看所有字符是什么: class A{ public static void main(String args[]){ char x=0; for(int i=0;i<65536;i++){ x++; System.out.println(i + "th character is:
class A{
public static void main(String args[]){
char x=0;
for(int i=0;i<65536;i++){
x++;
System.out.println(i + "th character is: " + x);
}
}
}
我发现的是:-
前126个字符与ASCII字符相同
在第126个字符之后,它只是显示“?”标记
输出:-
。。。
第127个字符是:?
第128个字符是:?
第129个字符是:?
第130个字符是:?
第131个字符是:?
第132个字符是:?
第133个字符是:?
...
65534个字符是:
我的问题是为什么它显示“?”标记而不是Unicode字符 用下一行检查您的文件编码,看看会出现什么。如果不是“UTF-8”,则正确设置。你仍然看不到所有打印的字符。因此,您需要查看要相应地设置文件编码的文件
System.out.println(System.getProperty("file.encoding"));
System.setProperty("file.encoding","UTF-8");
我说它们就是无法显示。您的主机编码不正确set@AbhinavKumar:您需要在控制台中配置能够显示这些字符的字体,并且可能还需要使用chcp 65001将命令行编码更改为UTF8一些Unicode需要两个UTF-16代码单元字符。因此,要运行所有这些代码,包括未分配、私用等,请转到Character.MIN_CODE_POINT to Character.MAX_CODE_POINT,但@TomBlodget除外:这也意味着需要UTF-16代理U+10000到U+10FFFF的Unicode代码点必须使用字符串或char[]而不是单个char输出。使用Character.toCharsint将Unicode代码点转换为有效的UTF-16 char[]序列,然后可以根据需要将char[]转换为字符串。