我正在尝试对包含多字节字符的字符串执行子字符串,但我没有得到我期望的结果。我试图像?test那样对字符串进行子串。第一个字符是一个4字节字符,因此在此字符串上调用ToCharArray
将返回:
因此,当我在此字符串上调用.Substring(1)
时,它会返回一个无效的字符串,该字符串以第一个字符的第三个和第四个字节开头,而不是“test”。有没有办法让.Substring
和其他字符串操作将该字符视为一个单元?
答案 0 :(得分:10)
您想使用StringInfo
var yourstring = "test";
StringInfo si = new StringInfo(yourstring);
var substring = si.SubstringByTextElements(1);