Mailman の保存書庫が機種依存文字で文字化けする

作成: 2006年4月7日
更新: 2007年9月28日

Mailman の保存書庫は日本語の場合には日本語EUCでHTMLが生成されます。 が、○数字やローマ数字、1文字の(株)などの機種依存文字を含むメールが投稿されて しまうと、保存書庫の本文はEUCに変換できず、元のメール本文のエンコード、 つまりISO-2022-JPのままになってしまいます。
この場合、HTMLのエンコードは日本語EUCになっているので、保存書庫をWebブラウザで 見ると文字化けして読めません。
機種依存文字がEUCに変換できないのは Python のライブラリの JapaneseCodec の仕様のようです。外字なんだからエラーとして扱って変換をしない、というのはライブラリという立場からすれば姿勢として間違ってません。

機種依存文字を使ってはいけない、というのはインターネットが広まるよりも 昔の、パソコン通信(電子BBS)の頃からのマナーだったのですが。 今はそういうことを知らずにEメールに機種依存文字を入れてしまう人は多いですね。

嘆いても仕方ないので Mailman が呼び出す JapaneseCodec のエントリを PyKF を 使ったコーデックで上書きする、という、 日本語Mailman利用者メーリングリスト で紹介されていたお手軽な対処方法をやってみました。

参考にしたWebサイト

日本語Mailman利用者ML [mmjp-users 1364] Re: 保存書庫の一部のメールが文字化け
http://mm.tkikuchi.net/pipermail/mmjp-users/2005-April/001364.html

※以下のサイトは閉鎖されてしまっていてアクセスできません。

かっこカブとMailman
http://www.gembook.jp/tsum/page.pys?wiki=%7ENewsSummary%2F1071152639

PyKf
http://www.gembook.jp/tsum/page.pys?wiki=PyKf


やったこと

まず、PyKf をインストール。
PyKf は上記のサイトが閉鎖されているようなので、以下からダウンロードしてください。

pykf-0.3.4.tgz
md5sum: 270d3bf8a0f3cec9b4e55080ae195c63 pykf-0.3.4.tgz

PyKf のソースを SourceForge からダウンロードしてください。

http://sourceforge.jp/projects/pykf

2007/9/28追記
PyKf が SourceForge に登録されているのを発見したのですが、なぜかファイルが足りなくて setup 出来ませんでした。

ソースを適当な作業ディレクトリに展開して、インストールします。

$ mkdir ~/make
$ cd ~/make
$ tar zxvf ~/ftp/pykf-0.3.4.tgz
$ cd pykf-0.3.4
$ su
# python setup.py install


次に「かっこカブとMailman」に書かれているコードを mm_cfg.py の末尾に追加。
これも元のサイトが閉鎖されているようなので、以下からダウンロードしてください。

mm_cfg に追加する機種依存文字対策

Mailman を再起動して、保存書庫の再構築のコマンドを実行。


$ su
# su - mailman
$ Mailman/bin/arch --wipe メーリングリスト名

うまくいきました。




Goto   Top  |  Computer  |  Blog