为什么Encoding.Unicode.GetBytes()返回一个额外的0
本文关键字:一个 返回 Encoding Unicode GetBytes 为什么 | 更新日期: 2023-09-27 18:12:52
我使用Encoding.Unicode.GetBytes()
将字符串转换为字节,但它总是添加额外的zero
。这里我的代码是
Dim StringBytes As Byte() = Encoding.Unicode.GetBytes("s")
给出结果
115
0
另一个例子:
Dim StringBytes As Byte() = Encoding.Unicode.GetBytes("mm")
给出结果
109
0
109
0
为什么总是加0 ?
。Net使用Unicode UTF16(以小端字节顺序)作为Encoding.Unicode.GetBytes()
类型返回的值,并且UTF16为每个常规字符使用2个字节。(string
类型也使用UTF16)
对于2个m,你得到4个字节,每个m是109和0。
您看到的0
不是null终止符。它是字符代码的一部分。
(注意,对于ASCII字符,UTF16表示将高字节设置为0,低字节设置为字符的ASCII码。m
的ASCII码是109