替换(修复)字符串中的非UTF-8字符



当我解析字符串以成为JSON对象时,有一些特殊字符被黑色问号(*)取代,我认为这是字符编码的问题。有什么方法可以用正确的字符()替换问号吗?还是它丢失了?

从当前版本的规范:

替换字符U+FFFD替换字符是Unicode标准中的通用替换字符。它可以替代任何"未知"字符在另一种编码,不能映射为已知的Unicode字符

传递此字符序列的一些算法可能遇到了错误,并使用替换字符:

如果在处理过程中意外遇到没有特定内部用途的非字符,则实现可能会发出错误信号或用U+FFFD替换字符

这意味着你得到的文本被修改了:

如果实现选择替换、删除或忽略非字符,则该操作构成对文本解释的修改。

Unicode序列不包含其他错误信息,并且无法仅从中恢复原始字节序列,因为它的一部分已经被映射。

如果您正在显示(而不是解析)文本,界面可能会选择用替换字符显示一些未知字符:

显示这些未知代码点的选项包括将代码点打印为四到六个十六进制数字,打印黑色或白色框,或其他替代字形,例如U+FFFD

最新更新