Существует ли командная оболочка Windows, которая будет отображать символы Юникода? - PullRequest
49 голосов
/ 18 декабря 2008

Если у меня установлены шрифты с соответствующими символами, есть ли командная оболочка для Windows XP, которая будет отображать символы Юникода? Как минимум, две вещи, которые должны правильно отображать Unicode:

  • Каталог объявлений. Мне все равно, что мне нужно вводить (dir, ls, get-childitem и т. Д.), Если файлы с символами Unicode в именах отображаются с правильными глифами, а не с непечатным символом.
  • Текстовые списки содержимого файлов. Опять же, для меня не имеет значения, «меньше», «больше», «кошка», «собака» и т. Д., Если символы напечатаны. Я признаю, что это сложнее из-за кодировки символов файла, поэтому, если мне нужно указать это в командной строке, это меня устраивает.

Вот что я пробовал до сих пор:

  • cmd.exe
  • Windows PowerShell; включая многоязычную версию.
  • Cygwin Bash

Не повезло. Я даже пытался установить пользовательские шрифты для cmd / PowerShell . PowerShell и cmd.exe, похоже, поддерживают Unicode, в том смысле, что я могу скопировать / вставить непечатную рамку, и она будет вставлена ​​в другие приложения с правильными символами. Cygwin (?), Кажется, преобразовать в? символ и это приходит в копировать / вставить.

Есть идеи?

Ответы [ 12 ]

40 голосов
/ 10 апреля 2009

Чтобы сделать это с cmd.exe , вам потребуется использовать диалоговое окно свойств консоли, чтобы переключиться на шрифт Unicode TrueType.

Затем используйте эти команды:

 CHCP 65001
 DIR > UTF8.TXT
 TYPE UTF8.TXT

Команда:

  • Переключить консоль на UTF-8 (65001)
  • Перенаправить вывод DIR на UTF8.TXT
  • Дамп UTF-8 на консоль

Символы по-прежнему должны поддерживаться шрифтом для правильного отображения на консоли.

I18N: Unicode в командной строке Windows (C ++; .Net; Java)

18 голосов
/ 19 декабря 2008

Это было серьезной проблемой в 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 .

6 голосов
/ 09 января 2009

Установка кодовой страницы в UTF-8 с помощью команды "chcp 65001" должна помочь вам правильно печатать содержимое файла в оболочку (используя cmd.exe). Это не будет работать для списков каталогов (кодировка UTF-16 в именах файлов NTFS).

5 голосов
/ 28 декабря 2013

Попробуйте это:

powershell.exe -NoExit /c "chcp.com 65001"

Кто использует msysgit:

powershell.exe -NoExit /c "chcp.com 65001; sh --login -i"

Не забудьте изменить шрифт окна на шрифт TrueType с поддержкой UTF-8 («Lucida Console»)

2 голосов
/ 28 апреля 2012

Вот так я могу получить вывод на китайском языке в cmd.exe, работающем в английской версии Windows 7 Pro. Я также пробовал имена файлов на японском, русском и польском языках, и все они отображаются правильно. Ввод также, кажется, работает, по крайней мере, когда я пытался сделать dir xxx*, содержащий символы не ascii.

  1. Установка console2 , которая является интерфейсом для cmd.exe (и других оболочек)

  2. После установки следуйте этим инструкциям

    Удалить ключ 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
    
  3. Вы можете или не можете изменить шрифт. Изначально я установил шрифт @NimSum, и китайские иероглифы вышли повернутыми на 90 градусов. Затем я переключился на NimSum (без @), и он вышел правильно. Тогда просто из любопытства я переключился на Consola, и все же я все еще вижу китайские иероглифы. Поэтому я не уверен, нужно ли вам устанавливать шрифт или нет.

2 голосов
/ 04 января 2009

Для настоящей оболочки попробуйте PowerShell Plus. Вы можете выбрать шрифты Unicode и работать с другими языками не только в редакторе, но и в настоящей консоли.

1 голос
/ 07 января 2009

Попробуйте Консоль 2 . Будьте осторожны с настройками цвета / палитры. Это немного глючит. Я подтвердил, что они не работают; они ведут себя как cmd.exe.

0 голосов
/ 07 мая 2017

Быстрый и удобный способ сделать это в Проводнике.

    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.
0 голосов
/ 01 августа 2016

Откройте командную строку с повышенными правами (запустите cmd от имени администратора). Запросите в реестре доступные шрифты 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
0 голосов
/ 10 июня 2014

Также от 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
...