2014-11-03 239 views
0

我將「1」「0」「0」「0」的btye數組轉換爲字符串。將字節[]轉換爲UTF8字符串

Encoding.UTF8.Getstring(myByteArray,0,4);,其結果是"\0\0\0"

我所期待的結果是 「1」。我做錯了什麼?

回答

2

UTF8編碼字符1映射到等於31(十六進制)的字節49(十進制),請參閱UTF8 table

但你有一些其他的數據,不知道爲什麼你期望「1」作爲結果。如果你期望「1」的結果是你的字節數組應該包含單個字節值49

var result = Encoding.UTF8.GetString(new byte[] { 49 });//result is 1 

我相信你的數據不是UTF-8編碼的字節,這是別的東西(可能是一些其他的編碼!)。

您不能只使用UTF8將任意字節轉換爲字符串。爲此,必須首先將字節編碼爲UTF8。因此,找到數據的編碼方式,然後您可以使用適當的編碼來反轉它。

+0

好的。我有一些數據是UTF8,有些只是數字。我看到這些數字不是UTF8編碼的。但我只是循環與foreach,所以我看不出哪一個是哪個。可能有編碼這兩種可能的方法。 – 2014-11-03 11:27:50