Проблемы сборки с расширенными символами ascii - PullRequest
0 голосов
/ 04 сентября 2018

enter image description here

Я хочу знать, что нужно сделать, чтобы решить эту проблему с помощью расширенных символов ascii, я не понимаю, зачем печатать странные символы вместо букв, которые представляют 0x90 я положил PutStr C381 ничего не случилось enter image description here

1 Ответ

0 голосов
/ 05 сентября 2018

Это не имеет ничего общего с языком ассемблера и все, что связано с UTF-8 (что ожидает ваш терминал), против ISO-8859-1 (латиница-1) или Windows 1252 (IDK, который) расширенный 8-битный символ установить, с которого вы, похоже, ищите коды. Было бы то же самое, если бы вы написали программу на C с этими байтами в char array[] и использовали stdio puts.

Как говорит @Fuz: «У А нет кода ASCII». ASCII включает в себя только символы от 0,127 (а младшие 32 не печатаются) http://www.asciitable.com/. Extended -ASCII 8-битные наборы символов перекрываются только с UTF-8 для кода -точки от 0 до 127.

Любая программа, которая выполняет системный вызов write() для записи байта 0x90 в стандартный вывод, будет делать то же самое, независимо от того, на каком языке она была написана. (Используйте strace ./program, чтобы увидеть, что делает ваш, или канал это в hexdump -C). Например, в bash запустите printf '\x90\n', чтобы сделать то же самое. 90 0a не является допустимой многобайтовой последовательностью UTF-8, поэтому ваш терминал печатает глиф (a? В ромбе).


Вы можете установить свой gnome-терминал на ISO-8859-1 или Windows 1252 (щелкните правой кнопкой мыши и используйте раскрывающийся список, либо найдите пункт меню). Я использую konsole, и он поддерживает обе эти кодировки не-UTF-8.

Возможно, вы захотите установить export LANG=en_US только в этом терминале (не как обычно en_US.UTF-8), если вы это сделаете, поэтому другие программы будут продолжать работать хорошо.

Или en_CA, или любой другой язык, который вы на самом деле используете, просто используйте его версию, отличную от UTF-8, чтобы рисование линий man работало, как и полноэкранные текстовые вещи, такие как gdb ' s TUI layout reg mode или редакторы типа jed.

...