subtring一个多字节字符c#

Cei*_*ish 10 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和其他字符串操作将该字符视为一个单元?

Sam*_*eer 11

您想使用StringInfo

        var yourstring = "test";
    StringInfo si = new StringInfo(yourstring);
    var substring = si.SubstringByTextElements(1);
Run Code Online (Sandbox Code Playgroud)