Всякий раз, когда я пытаюсь преобразовать '™' в шестнадцатеричную строку, используя
string.Format("{0:X}", (int)"™");
, возвращается 2122, что странно, потому что при использовании онлайн-конвертеров я получаю 99. Почему?
99 - это код для ™ в кодировке Windows-1252, а 2122 - это код в соответствии со стандартом Unicode.
Как пояснил Cito, 99 - это код для ™ в кодировке Windows-1252.Вы можете получить его следующим образом:
var result = Encoding.GetEncoding("Windows-1252") .GetBytes("™") .Single() .ToString("X"); // result == "99"
Преобразование правильное. Согласно этому сайту значение ТМ в Юникоде равно 2122.
Кажется, что 2122 является правильным ответом. http://i.imgur.com/qhNC6.png
99 не правильно: http://www.wolframalpha.com/input/?i=ASCII+153