关于c#:Encoding.UTF8.GetString解析错误?

Encoding.UTF8.GetString Parse Error?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// test code
void Start()
{
    // bytes is get from server with NetworkStream.Read()
    byte[] bytes = { 0xe9, 0xba, 0xbb, // 麻
                     0xe9, 0xa3, 0x8e, // 风
                     0xe4, 0xbe, 0x8f, // 侏
                     0xe5, 0x84, 0x92, // 儒
                     0x00, 0x00, 0x00,
                     0x00, 0x00, 0x31,
                     0x32, 0x00, 0x00,
                     0x00, 0x00, 0x00 };
    // print: 麻风侏儒
    Debug.Log(Encoding.UTF8.GetString(bytes, 0, bytes.Length));
}

为什么最后12个字节没有被解析,以及Encoding.UTF8.GetString如何处理utf-8字节,我的意思是它如何计算这是一个中文字符还是一个ASCII字符


它正在被分析。但结果字符串中嵌入了空值,因此无法正确打印/显示。

试试这个:

1
2
3
String MyString = Encoding.UTF8.GetString(bytes, 0, bytes.Length);

char[] MyChars = MyString.ToArray();

我的角色拥有一切。