# STOP-PRESS - Это проблема GAWK # Как мне заставить Windows 10 правильно отображать CodePages? - PullRequest
0 голосов
/ 01 марта 2019

Как заставить Windows 10 правильно отображать CodePages?

STOP PRESS

Дополнительные исследования (создание эха x80-ff) показывают, что с Windows все в порядке, этоОшибка печати (или терминала / драйвера) GAWK Как показано на следующем снимке экрана GAWK, затем ECHO CP737 ...

gawk then echo off x80-FF

Есть некоторыетребуемые не ASCII и неанглийские символы, которые доступны на разных кодовых страницах Windows, но они не отображаются должным образом в окнах CMD Windows 10 (Microsoft Windows [Версия 10.0.17134.590]).Используемый шрифт Courier New (16pt).NB Используемый код неисправен, но PoC верен

Отображаемые блоки 80-FF почти (но не совсем) дублируют CP1252, за исключением CP737, который удивительно прост и показывает заменяющий символ '?'для большинства позиций.

Какую магию я призываю, чтобы кодовые страницы стали более похожими на то, какими они должны быть?Для справки я искал кодовую страницу 437 и аналогичные.

CodePage 437 CodePage 737 CodePage 850 CodePage 860 CodePage 869 CodePage 1252

Код для создания блоков символов взят из gawk:

# gawk -f HiAscii.awk
BEGIN {
 #SEP = "><" # insert " SEP " into strings
 print "   <0123456789ABCEF>" #yeah, D is missing, but principle okay
 for(hi = 0x80; hi < 0x100; hi += 0x10){
  line = sprintf("%X <", hi)
  for(lo = 0x01; lo < 0x10; ++lo){ #yeah, these limits are wrong but screenshots already done
   line = line sprintf("%c%s", hi + lo, "")
  }
  print line 
 }
 print "   <0123456789ABCEF>" # yeah D missing
 print
 exit
}

и пакетный файл для запуска -

@ver
@echo "437 = DOS Latin US"
@chcp 437
@gawk -f HiAscii.awk
@echo "737 = DOS Greek"
@chcp 737
@gawk -f HiAscii.awk
@echo "850 = DOS Latin 1"
@chcp 850
@gawk -f HiAscii.awk
@echo "860 = DOS Portugese"
@chcp 860
@gawk -f HiAscii.awk
@echo "869 = DOS Greek2"
@chcp 869
@gawk -f HiAscii.awk
@echo "1252 = Super ISO8859-1"
@chcp 1252
@gawk -f HiAscii.awk
...