Wie korrigiere ich mein Gebietsschema, um Unicode in irssi korrekt anzuzeigen?

1364
meneldal

Ich bin gerade in meinem neuen Labor und Japan angekommen und der Server, den ich verwenden kann, hat nur japanische Gebietsschemas. Ein Aufruf zur locale -aRückkehr

C POSIX ja_JP ja_JP.eucjp ja_JP.ujis ja_JP.utf8 japanese japanese.euc 

Also habe ich meine Umgebungsvariablen geändert und jetzt ist mein Gebietsschema so eingestellt, ja_JP.utf8dass Unicode gut unterstützt wird. Ein Aufruf zum Gebietsschema wird jetzt zurückgegeben (geändert von Eucjp):

LANG=ja_JP.utf8 LANGUAGE= LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8" LC_ALL= 

Ich kann Dateien mit japanischen Zeichen in Unicode problemlos lesen, egal ob ich less, emacs oder vim verwende und von PuTTY oder einem entfernten xterm mit cygwin eine Verbindung herstelle. Es scheint auch, andere Unicode-Zeichen gut anzuzeigen.

Aber hier kommt das Problem: Wenn ich etwas auf Japanisch schreibe, scheint es schief zu gehen. Ich benutze gerne IRC und aus irgendeinem Grund, während ich jeden japanischen Charakter perfekt lesen kann, wenn ich etwas tippe, das er als Müll für andere Leute verschickt. Ich verwende die hier gefundene Konfiguration http://xkr47.outerspace.dyndns.org/howtos/irssi-utf-8-guide.txt

Ich bekomme diese Ergebnisse für /set charset

term_charset = utf-8 recode_out_default_charset = ISO-8859-15 

und /set recode

recode = ON recode_autodetect_utf8 = ON recode_fallback = ISO-8859-15 recode_out_default_charset = ISO-8859-15 recode_transliterate = ON 

Wenn Sie Vorschläge haben, denken Sie bitte an einen Weg, der möglichst keine Root-Rechte erfordert, da der Administrator für immer etwas auf dem Server tun muss. Ich habe viel über das Gebietsschema im Internet nachgeschaut, aber nichts über dieses Problem gefunden.

3
Welchen IRC-Client verwenden Sie? Wenn Sie "cat> testfile.txt" ausführen, wird der eingegebene Text korrekt gespeichert? grawity vor 9 Jahren 0
Ich laufe irssi. Ich verwende dieselbe Konfigurationsdatei wie auf meinem anderen Server, auf dem alles einwandfrei funktioniert. Ich kann jetzt keine Katze probieren, aber ich werde es morgen tun, wenn ich wieder im Labor bin. meneldal vor 9 Jahren 0
Mit cat bekomme ich eine Textdatei, die ich sowohl unter Linux als auch unter Windows lesen kann. Notepad ++ sagt, dass es in UTF-8 ohne Stückliste codiert ist. Einheimischer Notizblock öffnet es auch gut. Dokumente, die ich mit "nano" erstellt habe, verwenden auch diese Kodierung. meneldal vor 9 Jahren 0
Ihr Terminal funktioniert also einwandfrei, aber Irssi interpretiert die Dinge seltsam. Könnten Sie prüfen, was `/ exec locale` sowie` / set charset` und `/ set recode` ausgibt? grawity vor 9 Jahren 0
Ich bekomme `LANG = ja_JP.UTF-8` (und die anderen Zeilen gleich,` LC_ALL` nicht gesetzt), `term_charset = utf-8` und` recode_out_default_charset = ISO-8859-15` und für die letzte ` recode = ON recode_autodetect_utf8 = ON recode_fallback = ISO-8859-15 recode_out_default_charset = ISO-8859-15 recode_transliterate = ON` meneldal vor 9 Jahren 1
Übrigens, seit ich bemerkt habe, dass ich `LANG = ja_JP.UTF-8` anstelle von` LANG = ja_JP.utf8` hatte, habe ich die Konsole wieder verlassen, mich komplett abgemeldet, so dass jetzt auch `LANG = ja_JP.utf8` ist, aber immer noch nicht Arbeiten. Ich sehe meine eigene Nachricht richtig, aber die Benutzer erhalten sie nicht richtig, während die Nachrichten, die andere Leute mir senden, einwandfrei funktionieren (ich teste tatsächlich, indem ich Nachrichten von meinem anderen Server sende, einschließlich Zeichen, die nicht in ShiftJS oder eucJP enthalten sind). meneldal vor 9 Jahren 0
Es ist höchstwahrscheinlich darauf zurückzuführen, dass `recode_out_default_charset` Irssi anweist, alles auf ISO-8859-15 umzuwandeln. Korrigieren Sie diese Einstellung. grawity vor 9 Jahren 0
Was soll ich stattdessen dort ablegen? Ich verwende die empfohlenen Einstellungen aus den irssi-FAQs, daher gehe ich davon aus, dass es funktionieren sollte. meneldal vor 9 Jahren 0
Äh, UTF-8, was sonst noch. grawity vor 9 Jahren 0
Vielen Dank, dass das irssi-Problem behoben wird. Ich bin mir ziemlich sicher, dass ich die Einstellungen an derselben Stelle eingefügt habe meneldal vor 9 Jahren 0

1 Antwort auf die Frage

1
grawity

Wie in Kommentaren festgestellt, wurde Irssi so konfiguriert, dass Nachrichten beim Senden anstelle von UTF-8 nach ISO-8859-15 konvertiert werden.

Ändern Sie den Ausgabezeichensatz mit:

/set recode_out_default_charset UTF-8 

Wenn Sie sich in Kanälen mit gemischten Zeichensätzen befinden, /set recode_fallback Shift-JISkann dies nützlich sein (ändert die Dekodierung der empfangenen Nachricht). Irssi versucht immer zuerst UTF-8, aber wenn die Decodierung fehlschlägt, wird als nächstes recode_fallback verwendet.

Vielen Dank für das Reparieren von irssi, aber ich verstehe immer noch nicht, warum die Dateinamen nicht zwischen Linux und Windows funktionieren. meneldal vor 9 Jahren 0
Es ist ein separates Programm und sollte wahrscheinlich in einer separaten Frage stehen ... Es hängt auch davon ab, mit welchem ​​Protokoll Windows und Linux auf das gemeinsam genutzte Laufwerk zugreifen. (NFS? SMB / CIFS? AFS?) grawity vor 9 Jahren 0
Ich werde meine Frage entsprechend bearbeiten, um nur nach IRC zu fragen, und werde dann eine neue Frage dazu stellen. Durch die Verwendung des japanischen Windows brauche ich einige Zeit, um diese Informationen herauszufinden. meneldal vor 9 Jahren 0
Es stellt sich auch heraus, dass ich die Website (im Link) nicht richtig gelesen habe, da sie sagte, dass "ISO-8859-15" standardmäßig für alle Fenster verwendet wird. Ich habe einfach nicht geglaubt, dass es von hier kommt, da ich eine Weile brauchte, um alles zu reparieren, um japanische Zeichen in der Konsole anzuzeigen. meneldal vor 9 Jahren 0