2011-11-23 250 views
2

每當我嘗試使用轉換爲十六進制?

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

它返回2122,因爲當我使用的在線轉換器,我得到99.爲什麼這是奇怪的轉換「™」爲十六進制字符串?

+0

你比較什麼編碼的在線轉換? –

+0

不確定,但我認爲它是Unicode,因爲™是Unicode字符? – method

+1

我在unicode轉換器中顯示的Unicode爲0x2122我去... –

回答

10

99是Windows-1252編碼中的TM的代碼,而2122是根據Unicode標準的代碼。

+0

是否有可能將其轉換爲Windows-1252? – method

+0

http://msdn.microsoft.com/en-us/library/system.text.encoding.convert%28v=VS.100%29.aspx – Cito

4

正如Cito所解釋的,99是Windows-1252編碼中的TM代碼。你可以得到它如下:

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

// result == "99"