转换为十六进制?

时间:2011-11-23 19:36:13

标签: c# hex

每当我尝试使用

将'™'转换为十六进制字符串时
string.Format("{0:X}", (int)"™");

它返回2122这很奇怪,因为当我使用在线转换器时,我得到99.为什么?

4 个答案:

答案 0 :(得分:10)

99是Windows-1252编码中的代码,而2122是符合Unicode标准的代码。

答案 1 :(得分:4)

正如Cito所解释的那样,99是Windows-1252编码中的代码。你可以按如下方式得到它:

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

// result == "99"

答案 2 :(得分:0)

答案 3 :(得分:0)

转换是正确的。根据{{​​3}},TM的unicode值为2122。