2012-05-02 4 views
1

У меня есть следующий код для конвертирования из HEX в ASCII.HEX String to Chinese String

//Hexadecimal to ASCII Convertion 
private static string hex2ascii(string hexString) 
{ 
    MessageBox.Show(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(); 
} 

вход шестнадцатеричной = D3FCC4A7B6FABBB7

выход возврата = Óüħ¶ú »·

Вывод, который мне нужен 狱 魔 耳环, но я получаю Óüħ¶ú» · вместо этого. Как я могу отобразить правильную строку?

ответ

2

Сначала преобразуем шестнадцатеричную строку в byte[], например. используя код How do you convert Byte Array to Hexadecimal String, and vice versa?. Затем используйте System.Text.Encoding.Unicode.GetString(myArray) (используйте правильное кодирование, возможно, не Unicode, но, судя по вашему примеру, это 16-разрядная кодировка, которая, кстати, не является «ASCII», которая является 7-разрядной), чтобы преобразовать ее в строку.

+0

О, боже! теперь я чувствую запаздывание ... ха-ха Спасибо, сэр, это сработало! –