2009-06-23 3 views
13

Ich habe eine kleine Java-Anwendung geschrieben, deren Ausgabe Unicode-Zeichen enthält. Wenn ich Eclipse verwende, um es zu laufen — sehe ich alle Ausgabe wie erwartet.Unicode-Ausgabe in der Windows-Befehlszeile?

Die Leute, die die Anwendung verwenden sollen, werden es als JAR-Datei ausführen. Ich dachte, sie könnten Standard-Cmd-Fenster verwenden, aber in diesem Fenster erscheint der Unicode als Gibberish.

Gibt es eine Möglichkeit, dass "cmd window" die Unicode-Zeichen erkennt und sie korrekt anzeigt? Oder gibt es irgendein Werkzeug, um einfach die JAR-Datei auszuführen und die richtige Ausgabe zu erhalten?

BTW - Umleitung der Ausgabe in eine Datei funktioniert in Ordnung, aber das Programm ist interaktiv, so dass dies keine gute Lösung sein wird.

Bearbeiten: Vielen Dank für die Vorschläge. Es scheint, dass die Cmd-Fonts nicht die spezifischen Zeichen haben, die ich brauche, und deshalb hat das Ändern der Codepage mein Problem nicht gelöst.

Ich habe eine way gefunden, um mehr monospaced Fonts zu der Konsole hinzuzufügen, aber nachdem ich sie jede Änderung hinzufügen, die ich in Bezug auf die Schriftarten (sogar eine der ursprünglichen Schriftarten in einer anderen Größe auswählen) tun möchte - ignoriert.

Ich denke, dass ich einfach mit einem anderen Tool versuchen werde, das eine andere Schriftart einfacher chhosing unterstützt.

+0

zu ändern Ich nehme an, Sie müssen schließlich eine "Konsole" für Ihre Anwendung schreiben ... – maxwellb

+0

"Weg, um mehr monospaced Schriftarten zu der Konsole hinzuzufügen" - der Link ist tot – mbomb007

+0

[Hier] (https: //www.techrepublic. com/blog/windows-and-office/quick-tip-add-fonts-zur-kommando-prompt /) ist eine Möglichkeit, weitere Schriftarten hinzuzufügen. Ich bin mir nicht sicher, ob es das Problem hat, das das OP noch erwähnt hat. – mbomb007

Antwort

0

try CMD/c/U java your.jar

+0

Er sagte bereits, dass Umleitung ist nicht das Problem. – Joey

+0

Das hat das Problem nicht gelöst ... Soweit ich verstehe, beeinflusst/U nur die Ausgabe von internen Befehlen. – Dikla

+2

wäre auch cmd/U/c, sonst wird "/ U nicht als interner oder externer Befehl erkannt". – maxwellb

1

Das Problem ist die Schrift, mit dem der Windows-Konsole Ausgabe anzeigt. Leider ist dies eine Benutzereinstellung.

Ich empfehle Ihnen, dass Ihre Benutzer ihre Windows-Konsolenschriftart auf Lucida-Konsole festlegen. Diese Schriftart sollte in der Lage sein, Wide-/Unicode-Zeichen zu verarbeiten.

+3

Auch in Windows 7 die Konsole Windows-Standard auf Raster-Schriftarten :-(. Sehr bedauerlich. – Joey

+4

Ich änderte die Schriftart zu Lucida. Dies löste das Problem nicht :( – Dikla

+0

Danke für die Rückmeldung Dikla. Ich habe -1 seit diesem tatsächlich geklickt , hilft nicht – maxwellb

0

Für Antworten, überprüfen Sie es zuerst. Dies ist ein einfaches Konsolenprogramm, das überprüft, dass das Ändern der Schriftart tatsächlich nicht funktioniert.

Ich werde überprüfen, ob die Antwort konkret ist "Kann nicht getan werden". Weitere Möglichkeiten zum Überprüfen: Verwenden Sie eine andere Shell. Powershell? Ich werde sehen, ob das funktioniert.

Allerdings könnten Sie tun:

ConsoleApplication1.exe > output.txt 
notepad.exe output.txt 

Haftungsausschluss: Mein Beispiel ist C#, aber die Konsolenanwendung sollte immer noch als solche arbeiten.

Und sehen Sie die Ergebnisse so, in der Zwischenzeit.

+0

Richtig, bemerkte die Umleitung.Interaktivität.Hmm .. – maxwellb

0

UTF-16 on 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 

Auch von Is there a Windows command shell that will display Unicode characters?

CHCP 65001 
DIR > UTF8.TXT 
TYPE UTF8.TXT 
+2

Funktioniert "Lucida Console" spezielle Zeichen? Ich versuchte mehrere Zeichen und sie wurden angezeigt als Quadrate auf dem cmd-Fenster. – Dikla

0

In C++/C nur verwenden: system("chcp 65001");

Vergessen Sie nicht, die Konsole des Schriftart Lucida Console