ASCII в Windows XP и Ubuntu Linux - PullRequest
       9

ASCII в Windows XP и Ubuntu Linux

1 голос
/ 09 июня 2009

Я создал программу на MVSC ++, которая выводит содержимое памяти (в ASCII). ASCII, который я вижу в консоли Windows, похоже, соответствует тому, что я вижу в различных таблицах ASCII (смайлик, ромб, клуб, стрелка вправо и т. Д.). Эта программа должна компилироваться под Linux (что делает), но вывод ASCII выглядит совершенно иначе. Несколько символов одинаковы, но остальные такие разные. Есть ли способ изменить, как терминал отображает код ASCII?

РЕДАКТИРОВАТЬ: программа выполняется правильно, это просто ASCII, который отображается по-другому.

Ответы [ 3 ]

3 голосов
/ 09 июня 2009

ASCII определяет коды символов от 0x00 до 0x7f. Все остальное (0x80-0xff) не является частью стандарта ASCII и зависит от того, что операционная система определяет как отображаемые символы. Однако упомянутые вами символы (смайлик, ромб, клуб и т. Д.) Являются представлениями «управляющих символов» ASCII, которые обычно не имеют визуального представления. Windows позволяет вам печатать такие символы и видеть глифы, которые он для них определил, но ваш Linux, вероятно, интерпретирует управляющие символы как управляющие коды (которые они есть) вместо печати соответствующих глифов.

1 голос
/ 09 июня 2009

То, что вы видите, - это «расширенный» набор символов, который IBM изначально включила, когда компьютеры впервые появились в мире. Да, мы возвращаемся в эпоху могучих динозавров, так что терпите меня. Эти символы живут выше $ 7F, и на интерпретацию их символов на экране может даже влиять выбранный шрифт. Большинство дистрибутивов Linux в настоящее время используют UTF-8 (или что-то похожее), и поэтому установленные шрифты могут иметь совершенно разные символы или даже отсутствующие глифы. В случаях, когда вы сравниваете представления "ASCII" (что является неправильным, поскольку это не совсем истинный ASCII) одних и тех же данных, они могут совпадать или не совпадать, так как вы должны иметь одинаковые "глиф" в обоих шрифтах правильно видеть подобные представления. Попытайтесь заставить ваши установки Windows и Linux использовать один и тот же шрифт, если это возможно, а затем посмотрите, есть ли изменения.

0 голосов
/ 29 мая 2010

Если ваш браузер поддерживает Unicode (и у вас установлены правильные шрифты), вы увидите их ниже. Вы можете скопировать и вставить в редактор с поддержкой юникода (Блокнот). Сохранить как UTF-16BE Затем, если вы откроете в HexEditor, вы увидите все коды Unicode для каждого глифа, видимого символом. В примере первый символ ascii Null имеет видимый символ Unicode 0x2639 в c \ c ++ \ java вы можете использовать его как \ u2639. Это не пустой символ, а визуальное представление.

http://en.wikipedia.org/wiki/Code_page_437

→ ♥ ♦ ♣ ♠ • ◘ ○ ◙♂♀ ♪ ♫ ☼►◄↕‼ ¶§▬↨ ↑ ↓ → ← ∟↔ ▲ ▼! "# $% & '() * +, -. / 0123456789:;? <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _ `АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ {|} ~ ⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ ¢ £ ¥ ₧ ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└ ┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσμτΦΘΩδ∞φε∩≡ ± ≥≤⌠⌡ ÷ ≈ ∙ ° · √ⁿ² ■ ⓿

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...