2011-06-23 23 views
0

所以基本上我需要找到一種方法來轉換它; 29 38 33 30 3D 34 FF,對此;齊達內如何將一組十六進制字節轉換爲自定義字符串

FF是暗示姓名結尾的字符。

到目前爲止我所能讀到的就是它的字面字符串,)830 =4ÿ,這對我所創建的內容來說並不是用戶友好的。

現在只需單獨一個名字就可以猜出我正在做什麼,但這是我似乎唯一陷入的唯一情況,就是整個自定義字符串。

回答

0

這是代碼從十六進制字符串,字符串,如果你是什麼格式的輸入字符串,十六進制或字節數組解釋

private string HexString2Ascii(string hexString) 
    { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i <= hexString.Length - 2; i += 2) 
    { 
    sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber)))); 
    } 
    return sb.ToString(); 
    } 

會很快樂。

+0

我知道如何從十六進制得到一個字符串,但我想使用不是ascii標準的字符的自定義數組。 但我正在讀的十六進制文件是little-endian,名稱的每個字節都是無符號整數。 雖然我仍然不知道你在說什麼,但我對編程已有5年了。 – Serosis

0

啊我看到發生了什麼。請記住,使用十六進制時,你有Unicode,Shift JIs,在你的情況下Little-endian。據我所知,它看起來像你有一個不正確的十六進制表,你正在嘗試閱讀。對不起,如果我的回答沒有足夠的幫助。

+0

那麼什麼類型的十六進制表將是合適的? – Serosis

+0

那麼取決於你使用的是什麼hex,你可以先嚐試Unicode,看看會發生什麼,無論如何是最常用的,如果你需要使用日文字符Shif JIS是最好的 – raz0r

0

如果你解碼十六進制值,並希望輸出爲ASCII編碼,那麼你就會得到你上面所述的狀態,如使用這個online hex decoder所看到的。

該字符串顯然不是ascii編碼的。我不能肯定準確的編碼,但通過觀察值,預期輸出和值之間的差異可以預測如何將值映射到字母:

AZ = 0×04 - 0x29

EG:' A」 = 04, 'b'= 05,.... 'Z'= 29

AZ =的0x30 - 0x55的

EG: 'A'= 30, 'b'= 31,... 'z'= 55

這應該足以讓你得到一個可讀的字符串。

相關問題