2

У меня есть старая программа для DOS (EarlyBird - EB.EXE), которая много лет работала на моей системе WIN XP Pro. Программа запускается с помощью ярлыка для .exe (я полагаю, файл * .pif), выполняется NTVDM и, по-видимому, использует AUTOEXEC.NT и CONFIG.NT.

С тех пор, как я переехал из США в Великобританию, я недавно сменил региональный вариант на США с Великобритании. Теперь окно "DOS" не будет правильно отображать символы "рисования коробки".

Если я запускаю приглашение CMD и набираю chcp, он отображает кодовую страницу как 850, которая вроде бы в порядке, хотя раньше она была 437. Тем не менее, DOS-программа Early Bird имеет выход из DOS-оболочки, и если я ее использую и наберу CHCP, я получу ответ 1252.

Я с помощью @Doktoro Reichard провел здесь различные эксперименты, в том числе установил кодовую страницу в реестре, запустил файл .bat с помощью команды chcp с помощью различных кодовых страниц, но ни одна из них не работала.

Наконец я вернул локализацию обратно в США, и теперь символы рисования коробки работают нормально. Как ни странно, выход DOS из программы EB STILL показывает cp как 1252, тогда как приглашение CMD показывает 437. Это смущает.

Однако я действительно хочу, чтобы языковой стандарт Windows был британским (по разным причинам, таким как форматы даты, 24-часовые часы и т.д.), Но мне все еще нужна моя старая программа DOS для корректной работы.

Есть ли способ установить языковой стандарт для Великобритании и при этом получить правильные символы рисования в NTVDM с помощью ярлыка * .pif?

Спасибо

Дэвид

1 ответ1

2

Вы непреднамеренно ответили на свой вопрос:

... но я недавно изменил региональный вариант для Великобритании с США.

Вот почему в командной строке не отображаются правильные символы. Согласно документации о chcp:

CHCP.com

Изменить кодовую страницу активной консоли. Кодовая страница по умолчанию определяется языковым стандартом Windows.

Синтаксис:

CHCP code_page

     code_page  - A code page number (e.g. 437)

Переходя от кодовой страницы США к кодировке Великобритании, вы также изменили внешний вид символов. Если вы посмотрите на следующие рисунки, то увидите, почему символы рамки не отображаются: потому что их там нет:

К счастью, решение простое: запустить chcp 850(который, хотя и не является оригинальной версией для США, но в основном совместим с Code Page 437) или chcp 437 в начале текущей командной строки.

Кодовая страница 437 (IBM-ASCII)

Кодовая страница 437 (IBM-ASCII)

,

Кодовая страница 1252 (Западная Европа)

Кодовая страница 1252 (Западная Европа)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .