Unter Windows 7 können Verzeichnisse oder Baumstrukturen keine Unicode-Zeichen anzeigen, selbst wenn cmd mit cmd / U gestartet wird

16063
太極者無極而生

Unter Windows 7 können Verzeichnisse oder Baumstrukturen keine Unicode-Zeichen anzeigen, selbst wenn cmd mit cmd / U gestartet wird

Also würde ich drücken Window Key + R, um etwas auszuführen und einzugeben, cmd /Udamit der Inhalt Unicode verarbeiten kann.

Wenn Sie dann diroder verwenden tree /F, wird der Inhalt in Unicode nicht als Unicode angezeigt. (Im Windows Explorer (Dateimanager) wird der Unicode angezeigt)

Gibt es eine Möglichkeit, damit umzugehen? Um Unicode-Zeichen zum Testen Ihrer Dateinamen zu erhalten, können Sie zu gehen

http://news.google.com/news?edchanged=1&ned=tw

und Sie können dort viele Unicode-Zeichen erhalten (UTF-8)

5
Hast du das schon mit Powershell versucht? Windows 7 hat es standardmäßig installiert. KdgDev vor 13 Jahren 0
Wenn ich PowerShell verwende und eine "help ls -full" -Option mache, gibt es keine Option wie "cmd" `dir / B ' 太極者無極而生 vor 13 Jahren 0
Denken Sie daran, dass PowerShell Objekte zwischen Befehlen leitet - Sie können ein ähnliches Verhalten wie dir / b erhalten, indem Sie: dir | ausführen % {$ _. Name} Goyuix vor 13 Jahren 0
@Guyuix: Oder `gci | Wählen Sie -expand Name` aus Joey vor 13 Jahren 0

3 Antworten auf die Frage

6
Joey

Ändern Sie die Schriftart für das Konsolenfenster in eine TrueType-Schriftart wie Lucida Console oder Consolas. Bei Rasterschriftarten sind Sie auf den OEm-Zeichensatz beschränkt.

cmd /u Ändert nur die Ausgabe in Dateien, nicht das, was Sie auf dem Bildschirm sehen.

PowerShell verwendet standardmäßig eine TrueType-Schriftart, weshalb sie für Sie funktioniert hat.

Das hat nichts damit zu tun cmd.

Selbst wenn ich zu Lucida oder Consolas wechsle und cmd / u starte, bekomme ich keine Unicode-Zeichen. Snark vor 13 Jahren 1
Wenn Sie Boxen sehen, funktioniert es * tatsächlich *. Das Konsolensubsystem unterstützt das Wechseln von Schriftarten nicht, sodass nur Glyphen aus der von Ihnen angegebenen Schriftart verwendet werden können. Und da keine Schrift Glyphen für Han-Ideographen enthält, werden nur Kästchen angezeigt. Der Text * ist jedoch * dort; Sie können es beispielsweise kopieren und einfügen. In PowerShell wird jedoch nichts anderes angezeigt, es sei denn, Sie verwenden die PowerShell ISE (diese ist keine Konsolenanwendung und unterliegt daher nicht den gleichen Einschränkungen). Joey vor 13 Jahren 2
@Joey Das Problem ist ausschließlich auf die Verwendung von CMD zurückzuführen. CMD * kann * keine Unicode-Zeichen anzeigen. CMD kann DBCS-Zeichen anzeigen, jedoch nur die Ihres Systemgebietsschemas. Ändern Sie Ihr Systemgebietsschema in Shift-JIS, führen Sie einen Neustart durch, und Sie können japanische Zeichen (nur Shift-JIS, nicht Unicode) anzeigen. Der CMD-Befehlszeilenprozessor unterstützt Unicode. Daher können Sie die Ausgabe an Dateien weiterleiten und sie beispielsweise in Notepad öffnen. Sie können jedoch * Unicode nicht anzeigen. Jeff vor 9 Jahren 1
@Jeff Es können nicht viele Zeichen angezeigt werden, nur weil diese Zeichen in der aktuellen Schriftart nicht vorhanden sind. Es kann nicht einfach die Zeichen in einer anderen Schriftart wie in der grafischen Benutzeroberfläche durch dieselben ersetzen, da die Zeichensatzrichtlinie in cmd sehr streng ist und nur bestimmte Schriftarten mit fester Breite akzeptiert. Dies liegt nicht an der Ländereinstellung, denn wenn ich die Codepage auf Vietnamesisch eingestellt habe, kann cmd problemlos auch russische, türkische, japanische ... Zeichen anzeigen, vorausgesetzt, die Zeichen sind in der Schriftart verfügbar. phuclv vor 9 Jahren 1
Das stimmt nicht wirklich, dass `This nichts mit cmd zu tun hat. Wenn ich 'dir / s' in der Konsole verwende, werden die Unicode-Zeichen korrekt angezeigt, und wenn ich sie in eine Datei übergebe, werden sie durcheinander gebracht. Nur "chcp 65001" löst das Problem. Suncatcher vor 5 Jahren 0
@Suncatcher: Die Umleitung ist eine Funktion von `cmd`. Wenn Sie also eine solche Funktion verwenden, ist` cmd` natürlich beteiligt. Versuchen Sie jedoch, Unicode-Zeichen in der Konsole auszuwählen und zu kopieren, was nichts mit `cmd 'zu tun hat. Joey vor 5 Jahren 0
1
user2718593

https://stackoverflow.com/questions/10764920/utf-16-on-cmd-exe

  1. Öffnen / Ausführen cmd.exe
  2. Klicken Sie auf das Symbol in der oberen linken Ecke
  3. Eigenschaften auswählen
  4. Dann Fontbar
  5. Wählen Sie Lucida Consoleund OK.
  6. Schreiben Sie Chcp 10000an der Eingabeaufforderung
  7. Endlich dir /b

Auch von https://stackoverflow.com/questions/379240/is-there-a-windows-command-shell-th-will-display-unicode-zeichen/24135341#24135341

  1. CHCP 65001
  2. DIR> UTF8.TXT
  3. TYPE UTF8.TXT
10000 ist keine Unicode-Codepage und kann nur Zeichen im Mac Roman-Zeichensatz anzeigen phuclv vor 9 Jahren 0
Wie können Sie chinesische, japanische Zeichen oder Emoticons anzeigen ... in dieser Codepage? phuclv vor 9 Jahren 0
Für Japaner können Sie chcp 932 verwenden. Dies verwendet jedoch Shift-JIS, damit Emoticons oder Chinesisch nicht funktionieren. Tensigh vor 7 Jahren 0
0
Mehrdad

Es ist nicht nur ein Eingabeaufforderungsproblem, sondern allgemein ein Windows-Problem. Die C „Breitzeichen“ Funktionen in Windows (nämlich wprintf) nicht nicht Unicode unterstützen.

Beweis für Ihren Anspruch? MSDN erwähnt ständig die Wide-Char-Varianten für Unicode. Joey vor 13 Jahren 0
[Here] (https://connect.microsoft.com/VisualStudio/feedback/details/101864/wprintf-has-no-unicode-support) gehört dazu. Mehrdad vor 13 Jahren 1
Ihnen ist bewusst, dass dies ein Fehler ist, der in einer * Prerelease-Version * von Visual Studio * 2005 * gemeldet wurde und seit langem behoben wurde (ganz zu schweigen davon, dass wir jetzt bei VS 2010 sind ...)? Beachten Sie auch, dass die Windows-API problemlos verwendet werden kann und es keinen besonderen Grund gibt, die C-Standardbibliothek an Stellen zu verwenden, an denen keine Probleme mit der Portabilität auftreten. Joey vor 13 Jahren 0
@Joey: Nein, das wusste ich nicht. Im Moment verwende ich jedoch Visual Studio 2008 und rufe `wprintf (L '私')` auf, und es wird auf jeden Fall * nichts * Unicode-Druck ausgeführt. Haben Sie ein Beispiel für komplexe Skripte, die mit wprintf gedruckt werden? (Das Ändern des Gebietsschemas sollte nicht erforderlich sein, da die Zeichenfolgen UTF-16 sind.) Mehrdad vor 13 Jahren 0
Die Windows-Konsole unterstützt Unicode nicht, da sie Unicode im Hintergrund verwendet: http://stackoverflow.com/questions/1259084/what-encoding-code-page-is-cmd-exe-using?lq=1 http: // stackoverflow. com / questions / 2213541 / vietnamese-character-in-net-console-application-utf-8? lq = 1 http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how ? lq = 1 In Windows 7 kann die Codepage 65001 die Zeichen nicht korrekt anzeigen. Sie können sie jedoch in einen Texteditor kopieren, um die korrekte Ausgabe zu sehen. In Windows 8 wird UTF-8 ohne Probleme angezeigt phuclv vor 9 Jahren 1
@ LưuVĩnhPhúc: In der Frage wurde ausdrücklich gesagt, dass die Konsole * keine * Unicode-Zeichen anzeigen kann *, * dass * sie nicht * kopiert * werden kann. Wenn Sie also kopieren und einfügen können, um sie richtig zu sehen, ändert sich nichts daran meine Antwort. Ich habe es nicht unter Win8 ausprobiert, aber ich bin skeptisch, dass es tatsächlich Unicode richtig anzeigen würde ... Haben Sie etwas Komplexes wie Chinesisch ausprobiert? Mehrdad vor 9 Jahren 0
Entschuldigung, ich habe noch keine chinesischen Zeichen unter Windows 8 getestet. Die Unfähigkeit, alle Unicode-Zeichen anzuzeigen, ist jedoch ein Problem mit der Schrift, nicht weil wprintf Unicode nicht unterstützt. Daher ist Ihre letzte Anweisung nicht korrekt. Chinesisches und japanisches Gebietsschema Windows verwendet eine andere Schriftart, die ich in anderen Gebietsschemas nicht auswählen kann. Ich weiß nicht, warum sie immer noch nicht alle Monospace-Fonts und Font-Substitutionen in der Konsole zulassen, während dies vor Jahrzehnten darauf hingewiesen wurde phuclv vor 9 Jahren 0
Ich habe Unicode unter Windows getestet und in der Tat unterstützt phuclv vor 9 Jahren 0
@ LưuVĩnhPhúc CMD kann keine Unicode-Zeichen anzeigen. Es kann DBCS-Zeichen anzeigen. Wenn Sie DBCS-Zeichen sehen, liegt dies daran, dass für Ihr Systemgebietsschema ein angemessener Wert festgelegt ist. Mit Japanese Shift-JIS (Codepage 932) können beispielsweise japanische Zeichen angezeigt werden. Dies erfolgt über DBCS, jedoch nicht Unicode. Jeff vor 9 Jahren 0
@Jeff Hast du die Seiten in meinem Kommentar oben gesehen? cmd unterstützt UTF-16 nativ und UTF-8, wenn die Codepage 65001 festgelegt ist. Sie können Unicode-Zeichen dort schreiben, ohne die Codepage zu ändern. Es ist nur die Anzeige in einigen Umgebungen nicht korrekt phuclv vor 9 Jahren 0
@ LưuVĩnhPhúc Wie gesagt, CMD kann * keinen * Unicode anzeigen. Ich weiß nicht, was Sie Ihrer Meinung nach angezeigt sehen, aber es ist kein Unicode. Da es sich bei der gesamten Frage um * Anzeige * von Unicode-Zeichen handelte, sehe ich nicht die Relevanz von CMD als Unicode "hinter den Kulissen" und in der Lage, Unicode-Ausgaben zu kopieren / einfügen oder zu pfeifen. Ihre Aussage, dass es nicht möglich ist, Unicode anzuzeigen, ist ein * Font-Problem *. Das liegt daran, dass CMD ein DBCS-Programm ist, kein Unicode-Programm. Jeff vor 9 Jahren 0
@Jeff nein, es unterstützt Unicode. Es sind nur die in Unicode konvertierten DBCS-Codepunkte. Sehen Sie nicht die Bilder mit Zeichen aus verschiedenen Codepages? Wie kann man das in einer bestimmten Codepage darstellen? Die meisten dieser Codepages sind auch nicht DBCS, da sie nur 1 Byte für die Codierung der Zeichen verwenden. phuclv vor 9 Jahren 0