subtring一个多字节字符c#

时间:2014-04-08 10:48:15

标签: c# string

我正在尝试对包含多字节字符的字符串执行子字符串,但我没有得到我期望的结果。我试图像?test那样对字符串进行子串。第一个字符是一个4字节字符,因此在此字符串上调用ToCharArray将返回:

  • 55357 #bytes第一个字符的第1个和第2个字符
  • 56384 #bytes第一个字符的第3和第4个
  • 116 #t
  • 101 #e
  • 115 #s
  • 116 #t

因此,当我在此字符串上调用.Substring(1)时,它会返回一个无效的字符串,该字符串以第一个字符的第三个和第四个字节开头,而不是“test”。有没有办法让.Substring和其他字符串操作将该字符视为一个单元?

1 个答案:

答案 0 :(得分:10)

您想使用StringInfo

        var yourstring = "test";
    StringInfo si = new StringInfo(yourstring);
    var substring = si.SubstringByTextElements(1);