it-swarm.com.de

Gibt es eine Windows-Befehls-Shell, die Unicode-Zeichen anzeigt?

Angenommen, ich habe Schriftarten installiert, die die entsprechenden Glyphen enthalten, gibt es einen Befehl Shell für Windows XP, der Unicode-Zeichen anzeigt? Zumindest zwei Dinge, die Unicode korrekt anzeigen sollten:

  • Verzeichnislisten. Es ist mir egal, was ich eingeben muss (dir, ls, get-childitem usw.), solange Dateien mit Unicode-Zeichen im Namen die richtigen Glyphen und nicht das nicht druckbare Zeichenfeld enthalten.
  • Inhaltsverzeichnisse für Textdateien Für mich ist es auch egal, ob es "weniger", "mehr", "Katze", "Hund" usw. ist, solange die Zeichen gedruckt sind. Ich erkenne, dass dies aufgrund der Zeichencodierung der Datei komplizierter ist. Wenn ich also in der Befehlszeile angeben muss, ist das für mich in Ordnung.

Folgendes habe ich bisher ausprobiert:

  • cmd.exe
  • Windows PowerShell; einschließlich der mehrsprachigen Version.
  • Cygwin Bash

Kein Glück. Ich habe sogar versucht, benutzerdefinierte Schriftarten für cmd/PowerShell zu installieren. PowerShell und cmd.exe scheinen Unicode-fähig zu sein, in dem Sinne, dass ich die nicht druckbare Box dort kopieren und einfügen kann und sie mit den richtigen Zeichen in andere Apps einfügen wird. Cygwin (?) Scheint zu konvertieren? Zeichen und das kommt durch das Kopieren/Einfügen durch.

Irgendwelche Ideen?

49
Brandon DuRette

Dies war ein Hauptproblem in PowerShell v1. Version 2 wird mit einer "grafischen Shell" ausgeliefert, die das Problem behebt. Dies ist letztlich nicht bei PowerShell, sondern beim Windows-Konsolenhost (den Cmd.exe ebenfalls verwendet). Sie können das aktuelle CTP für PowerShell v2 erhalten, wenn Sie möchten.

Tatsächlich wurde PowerShell Version 2.0 finalisiert und Anfang August mit der Veröffentlichung von Windows 7 und Windows Server 2008 R2 ausgeliefert. Darüber hinaus erreichten die Backport-Versionen (Windows Vista/2008) erst am anderen Tag ihren Meilenstein für den Release Candidate. Windows XP/Windows Server 2003 sollte in Kürze folgen. Linky linky .

18
Don Jones

Um dies mit cmd.exe durchzuführen, müssen Sie das Dialogfeld mit den Konsoleneigenschaften verwenden, um zu einer Unicode-TrueType-Schriftart zu wechseln.

Verwenden Sie dann diese Befehle:

 CHCP 65001
 DIR > UTF8.TXT
 TYPE UTF8.TXT

Befehle:

  • Wechseln Sie die Konsole zu UTF-8 (65001)
  • Ausgabe von DIR nach UTF8.TXT umleiten
  • Dump von UTF-8 auf die Konsole

Die Zeichen müssen weiterhin von der Schriftart unterstützt werden, damit sie ordnungsgemäß auf der Konsole angezeigt werden.

I18N: Unicode an der Windows-Eingabeaufforderung (C++; .Net; Java)

40
McDowell

Wenn Sie die Codepage mit dem Befehl "chcp 65001" auf UTF-8 einstellen, sollten Sie den Inhalt der Datei korrekt auf die Shell (mit cmd.exe) drucken. Dies funktioniert jedoch nicht für Verzeichnislisten (UTF-16-Kodierung in NTFS-Dateinamen).

6
Kim André Sand

Versuche dies:

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

Wer verwendet msysgit:

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

Vergessen Sie nicht, die Schriftart des Fensters in TrueType-Schriftart mit UTF-8-Unterstützung ("Lucida Console") zu ändern.

5
iegik

Versuchen Sie PowerShell Plus für eine echte Shell. Sie können Unicode-Schriftarten auswählen und mit anderen Sprachen arbeiten, nicht nur im Editor, sondern in der echten Konsole.

2
karl prosser

So kann ich chinesische Ausgabe in cmd.exe unter Windows 7 Pro English Version ausführen. Ich habe auch Dateinamen mit Japanisch, Russisch und Polnisch ausprobiert, und alle scheinen korrekt angezeigt zu werden. Die Eingabe scheint auch zu funktionieren, zumindest wenn ich versucht habe, einen dir xxx* mit Nicht-ASCII-Zeichen auszuführen.

  1. Installieren Sie console2 , ein Frontend für cmd.exe (und andere Shells).

  2. Befolgen Sie nach der Installation diese Anweisungen

    Löschen Sie den Schlüssel HKEY_CURRENT_USER\Console\Console2 command window in der Registrierung.

    Importieren Sie die folgenden Daten in die Windows-Registrierung:

    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. Möglicherweise müssen Sie die Schriftart nicht ändern. Anfangs hatte ich die Schriftart auf @NimSum gesetzt, und die chinesischen Schriftzeichen wurden um 90 Grad gedreht ausgegeben. Dann wechselte ich zu NimSum (ohne das @) und es kam richtig heraus. Dann habe ich einfach aus Neugier auf Consola gewechselt und kann trotzdem die chinesischen Schriftzeichen sehen. Ich bin mir also nicht sicher, ob Sie die Schriftart tatsächlich einstellen müssen oder nicht.

2
crusherjoe

Versuchen Sie Console 2 . Seien Sie jedoch vorsichtig mit den Farben/Paletten-Konfigurationen. Das ist ein bisschen fehlerhaft. Ich habe ihnen zugesagt, nicht zu arbeiten; Sie verhalten sich wie cmd.exe.

1
Kim André Sand

PowerShell V2 CTP3 inside Console2 scheint das zu tun. Der einzige Nachteil ist, dass die standardmäßige Konsolencodierung UCS-2 LE anstelle von UTF-8 ist.

0
Robin Smidsrød

Seit November 2011 ist MinTTY nun der Standard-Terminalemulator von Cygwin (installiert von setup.exe). MinTTY ist eine Abzweigung des Terminal-Emulators von PuTTY und bietet daher auch die richtige Unicode-Unterstützung und eine deutlich verbesserte Kompatibilität mit anderen Terminalemulatoren.

0
nneonneo

Öffnen Sie eine Eingabeaufforderung mit erhöhtem Befehl (führen Sie cmd als Administrator aus). Fragen Sie Ihre Registrierung nach verfügbaren TrueType-Schriftarten an der Konsole ab:

REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"

Sie sehen eine Ausgabe wie:

0    REG_SZ    Lucida Console
00    REG_SZ    Consolas
936    REG_SZ    *新宋体
932    REG_SZ    *MS ゴシック

Jetzt müssen wir eine TrueType-Schriftart hinzufügen, die die benötigten Zeichen wie Courier New unterstützt. Dazu fügen wir dem String-Namen Nullen hinzu. In diesem Fall wäre der nächste "000":

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"

Jetzt implementieren wir die UTF-8-Unterstützung:

REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f

Setzen Sie die Standardschriftart auf "Courier New":

REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f

Setzt die Schriftgröße auf 20:

REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f

Aktivieren Sie die Schnellbearbeitung, wenn Sie möchten:

REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f
0
Alon Or