在C#中处理Unicode字符串时,有人可以提供一些我应该注意的重要方面吗?
请记住,C#字符串是Char,UTF-16代码单元的序列.它们不是 Unicode代码点.一些unicode代码点需要两个Char,你不应该在这些Chars之间分割字符串.
此外,unicode代码点可以组合形成单个语言'character' - 例如,'u'Char后跟umlat Char.因此,您也无法在任意代码点之间拆分字符串.
基本上,它是一堆乱七八糟的问题,任何给定的问题可能只会在实践中影响你不知道的语言.
C#(和.Net一般)透明地处理unicode字符串,除非您的应用程序需要读取/写入具有特定编码的文件,否则您不必执行任何特殊操作.在这些情况下,您可以使用System.Text.Encodings命名空间中的类将托管字符串转换为您选择的编码的字节数组.