无法翻译Unicode字符'\ uDA22'

时间:2010-06-01 07:57:03

标签: c#

您好我正在检索注册表数据,并在输出到文件时遇到此问题。我不是100%确定它是什么,我猜它是我捕获的注册表值。有没有简单的方法可以消除这个问题,最好不删除数据?

1 个答案:

答案 0 :(得分:1)

\ uDA22是surrogate pair的一部分,不应单独出现。如果是,则表示您的数据已损坏。代理对仅用于基本多语言平面之外的相当奇特的字符。在注册表中找到它们似乎有点奇怪,除非你正在处理中文应用程序。

您使用什么编码来编写文件?发生错误要么是因为您的输入包含损坏的UTF-16数据(尽管我怀疑错误消息会有所不同),或者因为您使用的编码不能代表这些字符,对于英语的默认编码也是如此 - 语言Windows。最简单的解决方法是使用UTF-8作为编码。