« 賀春 | Main | Amazon.co.jp が送料無料キャンペーン中 »



Fri, 15 Jan 2010

xyzzy の irc-mode で twittericrgataway (TIG) や opentig.net に接続する方法

Posted at Fri, 15 Jan 2010 in computer::xyzzy

xyzzy の irc-mode で TwitterIrcGateway を使う場合、のデフォルトの文字コードでは文字化けはおきないのですが、UTF-8 にした場合や、同じく opentig.net (デフォルトの文字コードが UTF-8)に接続すると投稿が文字化けしていた現象がようやく直ったので記録をかねてメモしておきます。

エンコーディングが通常の *encoding-utf8* では駄目で、*encoding-std-utf8n* を使うというところが重要というかここで躓いていました。*encoding-utf8* とどう違うかというと、utf8n の n の部分が「Unicode signatureなしのUTF-8」で、std とついているのは「Windowsの変換表ではなくUnicode Consortiumが配布している変換表を使用する」ということのようです。(~/html/OChangeLog.html 参照)

そんでもって肝心の設定については、Twitter のopentig.net の場合 ~/.irc にこんな感じで記述。

(defvar *irc-server* "opentig.net")
(defvar *irc-port* 16668  "irc: ポート番号")
(defvar *irc-nick* "ついったーのID" "TwitterID")
(defvar *irc-realname* "ついったーのIDまたはメールアドレス" "TwitterID")
(defvar *irc-pass* "ついったーのパスワード" "Twitterパスワード")
(defvar *irc-incode* *encoding-std-utf8n* "irc: 入力文字コード")
(defvar *irc-outcode* *encoding-std-utf8n* "irc: 出力文字コード")

またはこんな感じに書いておくと、M-x irc-mode 、M-x irc::opentig で接続できます。接続するサーバをあちこち切り替えるならこっちのパターンで複数書いておくと便利。ただし、xyzzy を複数起動しない限りは一度に複数のサーバには接続できない(と思う)。

(defun opentig ()
  (interactive)
  (setf *irc-server* "opentig.net")
  (setf *irc-nick* "ついったーID")
  (setf *irc-port* 16668)
  (setf *irc-realname* "ついったーID")
  (setf *irc-pass* "ついったーパスワード")
  (setf *irc-incode* *encoding-utf8*)
  (setf *irc-outcode* *encoding-std-utf8n*)
  (irc-connect))

自前で TwitterIrcGateway をホスティングして使っているよという人は、*irc-server* とか *irc-port* とか、さらには *irc-incode* と *irc-outcode* を良いように書き換えてください。ローカル環境なら *irc-server* は localhost、エンコーディングはTIGで特に変更指定していなければ指定しなくても大丈夫です。(指定する場合には両方とも *encoding-jis*)

xyzzy の irc-mode で Twitter を眺める一番のメリットは自在なウィンドウ分割。作業中のウィンドウの下に Reply だけを表示したり、通常タイムライン、チャンネル A,B,C... と同時に複数の異なるタイムラインを一覧できるのは他のクライアントにはちょっとない機能なんじゃないかと思います。

2010/01/28

M-x opentig と書いていたのを M-x irc::opentig に修正。

« 賀春 | Main | Amazon.co.jp が送料無料キャンペーン中 »