VB.NET字节< - >字符串转换错误/问题

时间:2009-11-29 08:41:16

标签: vb.net

我正在从套接字读取数据(作为字节)并将此数据存储在字符串中。然后我需要访问字符串中的特定字节并用它们做一些数学运算。但是,我从字符串中读回的字节不是我所期望的。

以下是用于演示我的问题的代码:

    Dim bytTest() As Byte = {131, 0}
    Dim strTest As String
    strTest = System.Text.ASCIIEncoding.ASCII.GetString(bytTest)
    MsgBox(bytTest(0) & " = " & Asc(strTest.Substring(0, 1)))

这会产生“131 = 63”,但我原以为它会产生“131 = 131”。有人可以向我解释为什么以及如何解决这个问题?感谢

2 个答案:

答案 0 :(得分:1)

ASCIIEncoding仅限于前7位(字符0-127),因此尝试存储值为131的字符无法按预期工作。

改用UTF-8。

答案 1 :(得分:1)

ASCII编码仅对每个字符使用字节的低7位。因此,如果您将值为131的字节传递给它,您将得到意外的结果,因为为该值设置了高位。