2013-07-12 137 views
1

我想將一些擴展的ascii字符存儲到字典中進行查找,但獲得轉換的問題很少。C中的擴展ASCII#

我必須存儲這些字符的當前方法適用於所有非圖形外觀ascii字符0x20到0xAF。

電流法:

private static void LoadAnsiTable() 
{ 
    for (byte i = 0x20; i < 0xFE; i++) 
    { 
     AnsiLookup.Add(i, Convert.ToChar(i).ToString()); 
    } 
} 

但0xAF執行和不具備░▒▓│┤╡╢等它只是有這些時髦的字母。

看這張表http://www.asciitable.com/作爲參考。

這工作如果我手動添加,

AnsiLookup.Add(0xB0, "░"); 

我想知道我怎麼可以得到一些集合類捕獲這些符號,而無需手動添加它們呢?

+3

「擴展ASCII」不是任何一種單一編碼。這是一個令人討厭的含糊術語。不幸的是asciitable.com實際上並沒有說它使用的是哪種編碼。 –

回答

4

我假設你的「擴展ASCII」其實code page 437是:

Encoding cp437 = Encoding.GetEncoding(437); 
byte[] source = new byte[1]; 
for (byte i = 0x20; i < 0xFE; i++) 
{ 
    source[0] = i; 
    AnsiLookup.Add(i, cp437.GetString(source)); 
} 

請注意該代碼頁本身並不由.NET Framework的支持,所以它可能並不適用於所有系統。

+0

非常棒,非常好,非常感謝你! – lakedoo

+0

實際上是否有任何簡單的方法來查找.net中的哪些編碼與ASCII兼容? – Nyerguds

+0

@Nyerguds:是的;請參閱[在.NET中查找哪些編碼是ASCII兼容的](http://stackoverflow.com/a/39052679/1149773) – Douglas