当我的应用程序尝试使用它们处理电子邮件时,这些代码点会导致问题。
答案 0 :(得分:1)
C#字符串是UTF-16编码的,因此字符串的每个 char
元素都是一个必须属于[\u0000-\uFFFF]
范围的代码单元。如果您只想从需要2个UTF-16编码代码单元的字符串中删除每个Unicode代码点,那么您需要删除字符[\uD800-\uDBFF]
的每个实例,紧接着后面跟着一个字符范围[\uDC00-\uDFFF]
。或者,我相信你可以简单地删除范围[\uD800-\uDFFF]
中的每个字符并完成相同的任务。
结果可能没有用,因为我认为代理对最初是出于特定原因引入的,如果过滤掉它们会导致字符串的含义发生变化。最好的解决方案是更新您的应用程序以正确处理它们。