Хотя шарахава нашла решение самостоятельно, я должен сказать, что это решение не очень предпочтительно, по крайней мере, для меня. Проблема в том, что вы изменили параметры терминала в тексте («CharSet» от mintty
на самом деле) до «GBK», что отображают символы UTF-8 на экране? Они будут беспорядочным, нечитаемым кодом. Я экспериментировал на VIM, будь то текст китайского приветствия или кодированный UTF-8 исходный код, включая китайские символы, отображается как нечитаемый код. Это неприемлемо для меня или, как я полагаю, для большинства людей.
Наконец-то я выяснил способ обойти недостаток командной строки Windows (т. Е. cmd.exe
) и включить mintty
выполнение команд DOS без ущерба для грязных кодов. Вот мое решение и может быть полезно.
Тестирование среды:
ОС: Win7 64-бит китайский упрощенный
Cygwin: 64-разрядные
Командная строка: по умолчанию кода страницы 936
Конфигурация:
- Установить локаль Cygwin до
zh_CN.UTF-8
, поскольку большинство желающих
- Добавить
Locale=zh_CN
и Charset=UTF-8
в .minttyrc
ma король mintty
использование UTF-8 в качестве выходного кодирования
- Добавить
cmd /c chcp 65001
в .bashrc
Теперь вы можете запускать команды DOS, как ipconfig
, taskkill
, help.exe
и format.com
и т.д. непосредственно на mintty
, даже в компаньона с Линукс команд таких как less
, grep
. Каждый раз, когда вы входите в bash, он скажет вам, что Active code page: 65001
означает, что выходная кодировка cmd.exe
была временно изменена на UTF-8.
Когда код страницы cmd.exe
изменен на 65001, cmd.exe
больше не будет использовать китайский язык в качестве текста подсказки (на английском языке), а китайские каталоги также не поддерживаются. Это дефект cmd.exe
и не имеет ничего общего с mintty
. Каким-то образом mintty
удаляет выходные китайские символы, которые cmd.exe
с cp65001 не могут. Я не могу это объяснить, так или иначе, это работает.
Чтобы установить локаль Cygwin, вы можете добавить следующий код в .bashrc
:
export LC_ALL=zh_CN.UTF-8
export LC_CTYPE=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
Смотрите также:
Unicode characters in Windows command line - how?
My application prints international characters but I only see gray boxes
Просто получить решение. http://cygwin.com/faq-nochunks.html#faq.using.weirdchars Измените параметры терминала в тексте, выберите набор символов как «GBK». – sharajava