Почему иногда кодовая страница недопустима в консоли?

5091
Kevin Dong

Ну, ммм ... Я немного в ярости от кодовых страниц в консоли Windows (R).

Моя цель - изменить CP по умолчанию на конкретный CP в консоли без перезагрузки.

Звучит легко, правда?

В Win7 стандартный CP может быть изменен на некоторые CP, но некоторые не могут.

например.

> chcp [ 437 | 850 | 852 | 855 | 857 | 860 | 861 | 863 | 865 | 866 | 869 | 65001 | ... ] > Active code page: nnn 

но некоторые не могут, например.

> chcp [ 932 | 936 | 949 | 950 ] > Invalid code page 

Если я хочу изменить CP по умолчанию на CP (932, 936, 949, 950), я должен войти в панель управления, изменить языковой стандарт системы и перезагрузить компьютер.

Разве это не странно? Мне любопытно о причине. Спасибо.

3
Я почти уверен, что 932, 936, 949 и 950 IIRC были реализованы до того, как Windows перешла на UTF-16, поэтому, вероятно, ей пришлось снова запустить среду выполнения и запретить искать UTF-16. Bandrami 10 лет назад 0
Я помню, что при установке Win98 была возможность установить дополнительную языковую поддержку, однако я никогда не знал, что именно она сделала. Теперь я считаю, что он контролировал, какие кодовые страницы поддерживаются, и поэтому имел возможность использовать любую из них. Мне все еще нужно это подтвердить, но я больше заинтересован в том, чтобы изменить их без изменения языкового стандарта системы. Adam L. S. 10 лет назад 0

1 ответ на вопрос

3
ISanych

В Windows 7 вы можете установить кодовую страницу 932 только в том случае, если для вашей общесистемной Windows-версии, не поддерживающей Юникод, установлен японский язык (вам не нужно устанавливать дополнительную языковую поддержку, пока вы не хотите получать сообщения на японском языке;)). К сожалению, вам нужно перезагрузить Windows после установки локали. Я предполагаю, что это имеет место с другими кодовыми страницами, которые вы упомянули После перезагрузки ваш язык по умолчанию будет 932, и у вас также будет разделитель каталогов на японском:

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.  C:¥>chcp Active code page: 932  C:¥>chcp 65001 

Окно консоли воссоздается после этой команды:

Active code page: 65001  C:\>