Java不支持所有utf-8字符,比如
public static void main(String[] args){
Character cha = new Character('\uD841');
System.out.println(cha.compareTo(Character.MIN_VALUE));
String ts = "this is a test string";
StringBuilder sb = new StringBuilder();
sb.append(ts);
sb.append(cha);
ts = sb.toString();
for(int i =0;i<ts.length();i++){
System.out.println(Character.isLetter(ts.charAt(i)));
}
}
Run Code Online (Sandbox Code Playgroud)
它将打印"这是一个测试字符串?" 如何确保哪个角色不受支持?
您所看到的不是"Java不支持某个角色",而是"您的控制台不支持该角色"或"您的平台默认编码不支持您的角色".
System.out那么它使用平台默认编码.如果平台默认编码无法对字符进行编码,则该字符将转换为替换字符(默认为?).最后但并非最不重要的:\uD841是不是一个有效的Unicode字符!它是一个高代理值,并且明确排除在Unicode标准之外(因为它们在UTF-16中用于编码BMP之外的字符).
| 归档时间: |
|
| 查看次数: |
1270 次 |
| 最近记录: |