freenodeで文字化けする件

registerしてるチャンネルでたまに文字化けするなーで、clear #channel allすると直るなー、原因わかんねーなーと思ってたんですが、先達の方々に教えてもらいましたのでメモ。

結論からいうと、チャンネルモードで-cしないとiso-2022-jpな発言が文字化けする。
なんでかというと、+cはHyperion-ircdの拡張モードらしく、その効能は、

+c (color filter)
This cmode activates the colour filter for the channel. This filters out bold, underline, reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that escape sequences will usually leave cruft sent to the channel, just without the escape characters themselves.
http://freenode.net/using_the_network.shtml

で、これが有効になっている(+c)と、iso-2022-jpエスケープ(0x1B)がフィルタされて削られて文字化けするって寸法らしい。

registerしているユーザが出入りすると、そのタイミングでチャンネルモードがクリアされ、+cされ、化けラッタになってた模様。

解決方法としては、いちいち-cするか、mlockでモード固定するか。後者のほうが将来の手間がかからないのでいい。

ほか、nickservとかchanservのメモも残しておきます。これ以外のコマンドもたくさんあるのですが、それはhelpを見てください><



/msg nickserv register PASSWORD
自分の名前(ニックネーム)を登録。
/msg nickserv identify PASSWORD
認証要求。登録したパスワードが必要。
/msg nickserv help
nickservのヘルプを表示。
/msg chanserv register #CHANNEL
#CHANNELを登録。事前にnickservの認証をパスしている必要がある。
/msg chanserv op #CHANNEL
なるとを自分につける。なるとを落としてしまったときに回復するときとかに。事前に当該チャンネルにregisterしている必要がある。
/msg chanserv set #CHANNEL mlock -c+snt
チャンネルのモードを(この例の場合は-c+sntに)強制固定化する。
/msg chanserv help
chanservのヘルプを表示。