トップ過去ログこのサイトについて
1283681

IrcvでUTF-8が通るように変更する

[Program] at 2010/03/21 18:15:50. / コメント(0)
 ご無沙汰のエントリーはたぶんあまり需要のないネタです。

 未だに自宅ではircを眺めるのにMayuki Sawatari氏作のIrcvを使用しているのですが、IrcvはircサーバーとのやりとりにJISコードのみが流れることを想定しており、freenodeなどのUTF-8だと文字化けしてしまうのを何とかしてみよう、というものです。
※もっともtiarraを使用してUTF-8からJISに変換すればよいのですが、我が家ではこの機会にすべてUTF-8にしてしまったので(汗)

 とはいえIrcvはC#で書かれており、そもそも内部のエンコーディングにはUTF-8が使用されているので、単にJISコードへの変換部分を取っ払ってしまえばよい、ということになります。
 具体的には、IRCClient.csの155行目と156行目、
_sr = new StreamReader(_nstream, Encoding.GetEncoding("ISO-2022-JP"));
_sw = new StreamWriter(_nstream, Encoding.GetEncoding("ISO-2022-JP"));
と書かれている部分を、
_sr = new StreamReader(_nstream);
_sw = new StreamWriter(_nstream);
のようにしてしまえばよいわけです。

 これだと結局UTF-8決めうちで美しくないじゃん、という方もいらっしゃると思いますが、その場合はConfiguration.csやircv.csにも追加で書き加えて、環境設定ファイルから文字コード指定を読み込み、それをIRCClientのインスタンスに渡して設定させる…というコードにすればよいでしょう。(全部いじっても全部で15行程度追加するくらいでいけます)
[続きを読む...]

ナビゲーションバー