freenodeで文字化けする件
registerしてるチャンネルでたまに文字化けするなーで、clear #channel allすると直るなー、原因わかんねーなーと思ってたんですが、先達の方々に教えてもらいましたのでメモ。
結論からいうと、チャンネルモードで-cしないとiso-2022-jpな発言が文字化けする。
なんでかというと、+cはHyperion-ircdの拡張モードらしく、その効能は、
http://freenode.net/using_the_network.shtml
- +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.
で、これが有効になっている(+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のヘルプを表示。