3

我想将一些扩展的 ascii 字符存储到字典中以进行查找,但在进行转换时几乎没有问题。

我必须存储这些字符的当前方法适用于所有非图形外观的 ascii 字符 0x20 到 0xAF。

当前方法:

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

但是 0xAF 和 on 没有 ░ ▒ ▓ │ ┤╡ ╢ 等它只有这些时髦的字母。

查看此表http://www.asciitable.com/以供参考。

如果我手动添加它,这将有效,

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

我想知道如何在某种集合中捕获这些符号而无需手动添加它们?

4

1 回答 1

9

我假设您的“扩展 ASCII”实际上是代码页 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 本身并不支持此代码页,因此它可能并非在所有系统上都可用。

于 2013-07-12T16:21:47.573 回答