Есть ли командная оболочка Windows, которая будет отображать символы Unicode?
Предполагая, что у меня установлены шрифты с соответствующими глифами, есть ли командная оболочка для Windows XP, которая будет отображать символы Unicode? Как минимум, две вещи, которые должны правильно отображать Unicode:
- Списки каталогов. Мне все равно, что я должен набирать (dir, ls, get-childitem и т.д.), Если файлы с символами Unicode в их именах отображаются с правильными глифами, а не с непечатаемым символьным полем.
- Списки содержимого текстовых файлов. Опять же, для меня не имеет значения, если это "меньше", "больше", "кошка", "собака" и т.д., Пока персонажи печатаются. Я понимаю, что это сложнее из-за кодирования символа файла, поэтому, если мне нужно указать, что в командной строке это хорошо.
Вот что я пробовал до сих пор:
- cmd.exe
- Windows PowerShell; включая многоязычную версию.
- Cygwin bash
Не повезло. Я даже попытался установить настраиваемые шрифты для cmd/PowerShell. PowerShell и cmd.exe кажутся Unicode-знающими в том смысле, что я могу скопировать/вставить непечатаемый ящик, и он будет вставляться в другие приложения с правильными символами. Кажется, что Cygwin (?) Преобразуется в? характер, и это происходит в копии/вставке.
Любые идеи?
Ответы
Ответ 1
Это была серьезная проблема в PowerShell v1. Версия 2 поставляется с "графической оболочкой", которая исправляет проблему, которая в конечном итоге не связана с PowerShell, но с консольным хостом Windows (который также использует Cmd.exe). Вы можете получить текущий CTP для PowerShell v2, если хотите.
Собственно, PowerShell v2.0 был доработан и поставляется с выпуском Windows 7 и Windows Server 2008 R2 в начале августа. Кроме того, бэкпортованные версии (Windows Vista/2008) достигли своего ведомостей Release Candidate только на днях; Windows XP/Windows Server 2003 следует выполнить очень короткое время. Linky linky.
Ответ 2
Чтобы сделать это с помощью cmd.exe, вам нужно использовать диалог свойств консоли, чтобы переключиться на шрифт Unicode TrueType.
Затем используйте следующие команды:
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
Команды
- Переключите консоль в UTF-8 (65001)
- Перенаправить вывод DIR в UTF8.TXT
- Дамп UTF-8 для консоли
Символы по-прежнему должны поддерживаться шрифтом для правильного отображения на консоли.
I18N: Unicode в командной строке Windows (С++;.Net; Java)
Ответ 3
Установка кодовой страницы в UTF-8 с помощью команды chcp 65001 должна помочь вам правильно распечатать содержимое файла в оболочке (с помощью cmd.exe). Это не будет работать для каталогов, хотя (кодировка UTF-16 в именах файлов NTFS).
Ответ 4
Попробуйте следующее:
powershell.exe -NoExit /c "chcp.com 65001"
Кто использует msysgit:
powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"
Не забудьте изменить шрифт окна на шрифт TrueType с поддержкой UTF-8 ( "Lucida Console" )
Ответ 5
Для подлинной оболочки попробуйте PowerShell Plus. Вы можете выбрать шрифты Unicode и работать с другими языками не только в редакторе, но и в настоящей консоли.
Ответ 6
Вот как я могу получить китайский выход в cmd.exe
, работающем на Windows 7 Pro English Version. Я также пробовал имена файлов на японском, русском и польском языках, и все они выглядят корректно. Входы также работают, по крайней мере, когда я пытался сделать dir xxx*
содержащий символы не ascii.
-
Установите console2, который является интерфейсом для cmd.exe
(и других оболочек)
-
После установки следуйте этим инструкциям
Удалите ключ HKEY_CURRENT_USER\Console\Console2 command window
в реестре.
Импортируйте следующие данные в реестр Windows:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
-
Возможно, вам придется менять шрифт. Первоначально у меня был шрифт, установленный на @NimSum
, и китайские символы вышли вращением на 90 градусов. Затем я переключился на NimSum
(без @), и он вышел правильно. Затем, просто из любопытства, я переключился на Consola
, и все же я все еще вижу китайских иероглифов. Поэтому я не уверен, действительно ли вам нужно установить шрифт или нет.
Ответ 7
Попробуйте Консоль 2. Однако будьте осторожны с настройками цветов/палитр. Это немного багги. Я подтвердил, что они не работают; они ведут себя как cmd.exe.
Ответ 8
PowerShell V2 CTP3 внутри Консоль2 кажется сделай это. Единственным недостатком является то, что стандартная консольная кодировка - UCS-2 LE вместо UTF-8.
Ответ 9
Начиная с November 2011, MinTTY теперь является эмулятором терминала Cygwin по умолчанию (устанавливается setup.exe
). MinTTY - это вилка эмулятора терминала PuTTY, и, как таковая, поддерживает надлежащую поддержку Unicode и значительно улучшает совместимость с другими эмуляторами терминалов.
Ответ 10
Откройте командную строку с повышенными правами (запустите cmd as administrator). Запросите реестр для доступных шрифтов TrueType на консоли:
REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
Вы увидите вывод, например:
0 REG_SZ Lucida Console
00 REG_SZ Consolas
936 REG_SZ *新宋体
932 REG_SZ *MS ゴシック
Теперь нам нужно добавить шрифт TrueType, который поддерживает символы, которые вам нужны, такие как Courier New, мы делаем это, добавляя нули к имени строки, поэтому в этом случае следующий будет "000":
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"
Теперь мы реализуем поддержку UTF-8:
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
Установите шрифт по умолчанию на "Courier New":
REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f
Установите размер шрифта до 20:
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
Включите быстрое редактирование, если хотите:
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f
Ответ 11
Также из
UTF-16 на cmd.exe
Open/run cmd.exe
Click on the icon at the top-left corner
Select properties
Then "Font" bar
Select "Lucida Console" and OK.
Write Chcp 10000 at the prompt
Finally dir /b
Ответ 12
Быстрый и удобный способ сделать это в проводнике.
1. Open the Explorer window.
2. Traverse to the top level of directory where you want to find.
3. On the upper right corner, there is a find field.