Подтвердить что ты не робот

Есть ли командная оболочка Windows, которая будет отображать символы Unicode?

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

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

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

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

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

Любые идеи?

4b9b3361

Ответ 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.