2009-11-29 47 views
0

我正在從套接字讀取數據(以字節爲單位)並將此數據存儲在一個字符串中。然後,我需要訪問字符串中的特定字節,並與他們做一些數學計算。然而,我從字符串中讀回的字節並不是我所期望的。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」。有人可以向我解釋爲什麼以及如何解決這個問題?謝謝

+0

爲什麼你需要將字節轉換爲字符串? – 2009-11-29 08:44:33

+0

我認爲他正在用接收字節中的ASCII編碼組成一個字符串。 – Konamiman 2009-11-29 08:55:43

+0

正確Konamiman – Brian 2009-11-29 08:57:56

回答

1

ASCII編碼只對每個字符使用一個字節的低7位。因此,如果將值爲131的字節傳遞給它,則會得到意想不到的結果,因爲高位設置爲該值。

1

ASCIIEncoding僅限於前7位(字符0-127),因此嘗試存儲字符值爲131不會按預期方式工作。

改爲使用UTF-8。

+0

不需要UTF-8,我所需要的只是System.Text.Encoding.GetEncoding(1252)而不是ASCII – Brian 2009-11-29 09:47:03

相關問題