web-dev-qa-db-ja.com

irssiでUnicodeを正しく表示するようにロケールを修正するにはどうすればよいですか?

新しいラボと日本に到着したばかりですが、使用できるサーバーには日本語のロケールしかありません。 locale -aを呼び出すと

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

そこで、環境変数を変更し、ロケールがja_JP.utf8に設定されました。これは、Unicodeを問題なくサポートするはずです。ロケールの呼び出しが返されるようになりました(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=

使用しているless、emacs、vimに関係なく、PuTTYまたはcygwinを使用したリモートxtermから接続している場合でも、Unicodeで日本語の文字を含むファイルを問題なく読み取ることができます。また、他のUnicode文字も問題なく表示されるようです。

しかし、ここに問題があります。日本語で何かを入力すると、うまくいかないようです。私はIRCを使用するのが好きですが、他の人にゴミとして送られるものを入力すると、日本語の文字を完全に読み上げることができます。ここにある構成を使用しています- http://xkr47.outerspace.dyndns.org/howtos/irssi-utf-8-guide.txt

/set charsetでこれらの結果が得られます

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

および/set recode

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

提案がある場合は、管理者がサーバー上で実際に何かを行うのに永遠に時間がかかるため、可能であればルート権限を必要としない方法を考えてみてください。ロケールについてオンラインでたくさん調べましたが、この問題については何も見つかりませんでした。

3
meneldal

そのため、コメントで決定されているように、Irssiは、メッセージを送信するときに、UTF-8ではなくISO-8859-15に変換するように構成されていました。

以下を使用して出力文字セットを変更します。

/set recode_out_default_charset UTF-8

また、混合文字セットチャネルを使用している場合は、/set recode_fallback Shift-JISが役立つ場合があります(受信メッセージのデコードを変更します)。 Irssiは常に最初にUTF-8を試しますが、デコードが失敗した場合は、次にrecode_fallbackを使用します。

1
user1686