gpt4 book ai didi

java - 如何在java中替换不支持的utf 8字符

转载 作者:行者123 更新时间:2023-11-29 06:36:52 25 4
gpt4 key购买 nike

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)));
}
}

它将打印“这是一个测试字符串?”如何确定不支持哪个字符?

最佳答案

您看到的不是“Java 不支持某个字符”,而是“您的控制台不支持该字符”或“您的平台默认编码不支持您的字符”。

  1. 没有所谓的“UTF-8字符”,如果你坚持的话,它就是“Unicode字符”
  2. Java 可以很好地处理当前 Unicode 标准中的所有字符
  3. 当写入文件或控制台时,它使用编码将这些字符转换为字节(因为这是通用接口(interface))。
  4. 如果您只是打印到 System.out,那么它会使用平台默认编码。如果平台默认编码无法对字符进行编码,则该字符将转换为替换字符(默认为 ?)。

最后但同样重要的是:\uD841 is not a valid Unicode character !这是一个很高的替代值,并且那些被明确排除在 Unicode 标准之外(因为它们在 UTF-16 中用于对 BMP 之外的字符进行编码)。

关于java - 如何在java中替换不支持的utf 8字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com