Problem mit der Terminalzeichenkodierung BitchX

Problem mit der Terminalzeichenkodierung BitchX

Ich rannteHündinXauf drei verschiedenen Linux-Betriebssystemen, weil ich auf zwei davon (Linux OpenSUSE 11.4 und BackTrack 5 R1) dieses seltsame � (Fragezeichen) bekam, als ich yakuake/konsole (OpenSUSE) und terminator/tilda (BT 5 R1) verwendete.

Unter PuppyLinux Lucid 528 mit RoxTerm wird das Zeichen jedoch wie vorgesehen angezeigt (es ist das griechische Zeichen „fi“). Nun habe ich sowohl unter SUSE als auch unter BT den Wert von $LC_CTYPE überprüft und er ist derselbe wie unter Puppy Linux (nämlich en_US, also keine UTF-8-Kodierung).

Ich habe sowohl unter SUSE als auch unter BT mit unterschiedlichen Zeichenkodierungen (aus den Terminaleinstellungen) experimentiert und die Änderungen bemerkt, aber der Text war manchmal trotzdem noch verstümmelt, statt des Fragezeichens bekam ich ein paar komische, unverständliche „u“-s (unter Puppy wird es immer richtig angezeigt).

Was könnte die Ursache für dieses lästige Problem sein?
Was könnte anders sein und wie kann ich den Unterschied feststellen?

Antwort1

Hier sind mehrere Dinge im Gange.

Können Sie zunächst sicherstellen, dass das LC_CTYPE=en_UStatsächlich „kein UTF-8“ bedeutet?

Die nl_langinfoFunktion kann beispielsweise hilfreich sein:

$ python
>>> import locale
>>> locale.setlocale(locale.LC_CTYPE, 'en_US')
'en_US'
>>> locale.nl_langinfo(locale.CODESET)
'ISO-8859-1'

Zweitens wäre es hilfreich, immer nur eine Variable auf einmal zu ändern. Wenn RoxTerm beispielsweise unter PuppyLinux funktioniert, funktioniert es dann auch unter OpenSUSE und/oder BackTrack? Und können Sie auch sagen, welche Version Sie BitchXverwenden, falls das einen Unterschied macht?

Schließlich stellt IRC keine Informationen zur Zeichenkodierung bereit, sodass sich der Server und alle Benutzer in einem Kanal auf eine Zeichenkodierung einigen müssen. Ich denke, heutzutage verwenden die meisten Benutzer UTF-8. Vielleicht sollten Sie also versuchen, Ihre Einstellungen auf UTF-8 zu ändern?


AKTUALISIEREN

Sie sagten, BitchX unterstützt UTF-8 nicht.

Dann glaube ich, dass Sie Probleme haben werden, mit anderen Benutzern zu sprechen.

Aber wenn alle anderen Griechisch sprechen und auch BitchX verwenden, dann möchten Sie vielleicht dieGriechischer ISO-8859-7-Zeichensatz.

Auf meinem System sind die einzigen beiden Gebietsschemas, die ISO-8859-7 standardmäßig unterstützen, solche für die griechische Sprache, z. B. el_GR.iso88597.

Führen Sie den Befehl aus locale -a, um eine vollständige Liste Ihrer Optionen anzuzeigen, und wählen Sie eine Option aus, die diesen Zeichensatz enthält.

Antwort2

Das Fragezeichen in der Raute bedeutet wahrscheinlich, dass Ihr Client-Programm das Zeichen akzeptiert und an die Anzeige-Engine weitergibt (habe ich Recht, dass bitchX nur ein Terminalprogramm ist?), das Terminal es aber nicht rendern kann. Es handelt sich also wahrscheinlich um ein Problem mit der Terminalkonfiguration – z. B. enthält die ausgewählte Schriftart keine Glyphen für griechische Buchstaben. Sie können es testen, indem Sie von diesem Terminal kopieren und in ein anderes einfügen und dabei etwas wie „hexdump -C“ ausführen – es würde den Phi-Codepunkt anzeigen (U+03C6, also „CF 86“ im Hexdump von UTF-8). Wenn ja, versuchen Sie, eine Schriftart auszuwählen, die Griechisch unterstützt.

Wenn etwas wie \u03C6, usw. angezeigt wird, bedeutet dies, dass das Gebietsschema wahrscheinlich defekt ist (nicht Unicode), sodass der Client Zeichen akzeptiert, sie zwar in Unicode behandelt, sie dann aber nicht direkt ausgibt und in den Fallback-Modus wechselt. Ich vermute also, dass sowohl SuSE- als auch BT-Setups en_US als Alias ​​für Nicht-Unicode-Kodierung haben, wahrscheinlich ISO-8859-1. Versuchen Sie, en_US.UTF-8 direkt einzustellen und vergleichen Sie die Auswirkungen.

verwandte Informationen