Лучший способ декодировать шестнадцатеричную последовательность символов Юникода в строку - PullRequest
1 голос
/ 16 декабря 2008

Какой самый свободный от кода способ декодирования строки:

\xD0\xAD\xD0\xBB\xD0\xB5\xD0\xBA\xD1\x82\xD1\x80\xD0\xBE\xD0\xBD\xD0\xBD\xD0\xB0\xD1\x8F

в человеческую строку в C #?

Эта шестнадцатеричная строка содержит символы Unicode.

Я знаю о

System.Convert.ToByte(string, fromBase);

Но мне было интересно, есть ли какие-нибудь встроенные помощники, которые asp.net использует внутри.

1 Ответ

4 голосов
/ 16 декабря 2008

На этом сайте вы вряд ли получите код без кода (речь идет о коде). Декодирование байтового массива в шестнадцатеричном формате возможно, если вы знаете исходную кодировку.

Угадай кодировку как UTF8, расшифровав её System.Text.UTF8encoding возвращает следующие 11 символов Юникода Строка кириллицы :

ПИСЬМО КИРИЛЛИЧЕСКОГО КАПИТАЛА E, Кириллица маленькое письмо EL, Кириллица маленькое письмо, т.е. КИРИЛЛИЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО КА, Кириллица маленькое письмо TE, КИРИЛЛИЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО ER, Кириллическое маленькое письмо O, КИРИЛЛИЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО EN, КИРИЛЛИЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО EN, Кириллица маленькое письмо а, КИРИЛЛИЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО Я,

Как только вы поймете, как получить ваши данные в Byte[], Пример кода в приведенной выше ссылке показывает путь:

// fill encodedBytes with original data
Byte[] encodedBytes = new Byte[] {0xD0,0xAD,0xD0,0xBB,0xD0,0xB5}; //...
UTF8Encoding utf8 = new UTF8Encoding();
String decodedString = utf8.GetString(encodedBytes);
...