2013-07-12 3 views
1

Я хочу сохранить некоторые из расширенных символов ascii в словаре для поиска, но у вас мало проблем с получением преобразования.Расширенная ASCII в C#

Текущий метод, который я должен хранить эти символы, работает для всех неграфически выглядящих символов 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

 Смежные вопросы

  • Нет связанных вопросов^_^