Autor Thema: UTF-8 Konsolenausgabe unter Win7 fehlerhaft?  (Gelesen 3676 mal)

Arnold

  • Gast
UTF-8 Konsolenausgabe unter Win7 fehlerhaft?
« am: Montag, 30. Juli 2012, 10:42 »
Hallo,

seit meinen Anfängen mit Lilypond 2.10.33 unter Windows NT habe ich mir die Benutzung in der Kommandozeile angewöhnt.
Also:
1. Command Prompt (`cmd`) starten.
2. Eventuell überprüfen, daß als Schriftart ein (oder der) Truetypefont eingestellt ist.
3. Mittels `mode con cp select=65001` auf UTF-8 umschalten.
[(2) kann man fest einstellen, (3) läßt sich in einen separaten Startaufruf (statt 1) integrieren]

In der deutschen Umgebung (notfalls `set LANG=de_DE.UTF-8`) wird dann mehrmals der zu kompilierende Dateiname in den Quilemont-Anführungszeichen dargestellt, also z. Bsp. »test.ly«

Genauer gesagt: An meinem Win7/64 Rechner wird stattdessen nur ein enzelnes Zeichen (Â) dargestellt und der Rest der Zeile verworfen.
Übers Wochenende konnte ich das Verhalten mal vorübergehend auf einem WinXP-Rechner testen, und dort war die Ausgabe in Ordnung.

Daher meine Bitte:
Wer auch einen Win7-Rehner hat, bitte wie oben angegeben (Codepage einstellen und Truetypefont wählen) die Kommandozeilenausgabe von lilypond testen, ob das beobachtete Phänomen auch auf anderen Win7-Rechnern auftritt oder auf meine Installation beschränkt ist.

Falls es ein allgemeines Problem unter Win7 sein sollten, werde ich einen entsprechend detailierten Bug-Report an die Lilypond-Entwicklung senden.

Vielen Dank im voraus.
Arnold

ding-dong

  • Gast
Re: UTF-8 Konsolenausgabe unter Win7 fehlerhaft?
« Antwort #1 am: Mittwoch, 1. August 2012, 21:51 »
also ich kriege sowohl mit LANG=de und LANG=de_DE.utf-8

Zitat
»test.ly« wird verarbeitet

hdh
ding-dong

Arnold

  • Gast
Re: UTF-8 Konsolenausgabe unter Win7 fehlerhaft?
« Antwort #2 am: Donnerstag, 2. August 2012, 09:17 »
Hallo,

dann überprüfe bitte noch die Codepage bzw. stelle diese ein, und überprüfe daß auch der TTF zur Darstellung verwendet wird.

Das gezeigte Ergebnis erhalte ich auch, wenn ich die CP nicht verändere. Es sind die UTF-8-Bytes als Latin1 interpretiert.

Die eingestellte Copdepage überprüft man mit der Eingabe mode con cp, und es sollte 65001 für UTF-8 sein.
Die Schriftarteneinstellung findet man im Systemmenü der Eingabeaufforderung unter Eigenschaften --> Schriftart.

Arnold

ding-dong

  • Gast
Re: UTF-8 Konsolenausgabe unter Win7 fehlerhaft?
« Antwort #3 am: Donnerstag, 2. August 2012, 10:39 »
hallo Arnold

hier das ergebnis (mit Lucida Console als schriftart) - genau wie du gesagt hast, der filename wird unterschlagen!

Zitat

&lilypond test.ly
GNU LilyPond 2.15.41
ÂAnalysieren...
Interpreting music...
Vorverarbeitung der grafischen Elemente...
Interpreting music...
Vorverarbeitung der grafischen Elemente...
Interpreting music...
Vorverarbeitung der grafischen Elemente...
Interpreting music...
Vorverarbeitung der grafischen Elemente...
Ideale Seitenanzahl wird gefunden...
Musik wird auf 1 oder 2 Seiten angepasst...
Systeme erstellen...
Layout nach Â
Konvertierung nach ÂKompilation erfolgreich beendet

gruss
ding-dong

Arnold

  • Gast
Re: UTF-8 Konsolenausgabe unter Win7 fehlerhaft?
« Antwort #4 am: Donnerstag, 2. August 2012, 12:17 »
OK. Dann bereite ich mal meine detailierte Beschreigung vor, und poliere meinen Workaround auf.

Der Workaround-Trick besteht darin, daß man ein eigenes Programm um lilypond herum schachtelt. Wenn Lilypond dann die Ausgabe statt direkt auf die Konsole in eine Pipe umgeleitet entdeckt, dann fließt durch die Pipe (zum umhüllenden Programm) der ganz legale UTF-8-Bytestream, welcher dann vom 'Umhüller' für den Bildschirm aufbereitet werden muß.
In meiner aktuellen Lösung habe ich zwei getrennte Pipes (für Standardausgabe und Fehlerausgabe) und noch keine Abfrage, ob die Ausgaben nicht schon in eine Pipe oder Datei umgeleitet wurden - und wegen der beiden Pipes verliert die Ausgabe seine Synchronisation, dafür hatte ich aber die Fehlerausgabe (und Fortschrittsanzeige) bei mir in rot ausgegeben, die Standardausgabe (display-Anweisung in Scheme, \displayMusic, ...) in gelb. So nebenbei wird auch die Codepage auf 65001 umgestellt.
Dann soll die neue Workaround-Version, ins gleiche bin-Verzeichnis wie lilypond.exe gestellt, automatisch die lilypond.exe finden und ausführen. Und als Compiler werde ich den Windows-Crosscompiler im UBUNTU der lilydev-VM ausprobieren, der scheint mir am ehesten 'allen neutral zugänglich' zu sein.

Na ja, klingt nach ner Woche Arbeit, und dann habe ich noch ein paar andere Projektliein parallel laufen.

Arnold