-4

当我的应用程序尝试使用它们处理电子邮件时,这些代码点会导致问题。

4

1 回答 1

1

C# 字符串是 UTF-16 编码的,所以字符串的每个 char元素都是一个代码单元,必然落入 range [\u0000-\uFFFF]。如果您只是想从需要 UTF-16 编码中的 2 个代码单元的字符串中删除每个 Unicode 代码点,那么您需要删除[\uD800-\uDBFF]紧跟在 range 中的字符的每个字符实例[\uDC00-\uDFFF]。或者,我相信您可以简单地删除范围内的每个字符[\uD800-\uDFFF]并完成相同的任务。

结果可能没有用,因为我认为代理对最初是出于特定原因引入的,如果您将它们过滤掉,则会导致字符串的含义发生变化。最好的解决方案是更新您的应用程序以正确处理它们。

于 2013-06-19T20:14:02.410 回答