Преобразование в гекс? - PullRequest
       2

Преобразование в гекс?

2 голосов
/ 23 ноября 2011

Всякий раз, когда я пытаюсь преобразовать '™' в шестнадцатеричную строку, используя

string.Format("{0:X}", (int)"™");

, возвращается 2122, что странно, потому что при использовании онлайн-конвертеров я получаю 99. Почему?

Ответы [ 4 ]

10 голосов
/ 23 ноября 2011

99 - это код для ™ в кодировке Windows-1252, а 2122 - это код в соответствии со стандартом Unicode.

4 голосов
/ 23 ноября 2011

Как пояснил Cito, 99 - это код для ™ в кодировке Windows-1252.Вы можете получить его следующим образом:

var result = Encoding.GetEncoding("Windows-1252")
                     .GetBytes("™")
                     .Single()
                     .ToString("X");

// result == "99"
0 голосов
/ 23 ноября 2011

Преобразование правильное. Согласно этому сайту значение ТМ в Юникоде равно 2122.

0 голосов
/ 23 ноября 2011

Кажется, что 2122 является правильным ответом. http://i.imgur.com/qhNC6.png

99 не правильно: http://www.wolframalpha.com/input/?i=ASCII+153

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...