我遇到了 Utf7Encoding 类截断“+4”序列的问题。我很想知道为什么会这样。我尝试使用 Utf8Encoding 从 byte[] 数组中获取字符串,它似乎可以正常工作。Utf8 是否存在类似的已知问题?本质上,我使用此转换产生的输出从 rtf 字符串构造 html。
这是片段:
UTF7Encoding utf = new UTF7Encoding();
UTF8Encoding utf8 = new UTF8Encoding();
string test = "blah blah 9+4";
char[] chars = test.ToCharArray();
byte[] charBytes = new byte[chars.Length];
for (int i = 0; i < chars.Length; i++)
{
charBytes[i] = (byte)chars[i];
}
string resultString = utf8.GetString(charBytes);
string resultStringWrong = utf.GetString(charBytes);
Console.WriteLine(resultString); //blah blah 9+4
Console.WriteLine(resultStringWrong); //blah 9