作成: 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利用者メーリングリスト
で紹介されていたお手軽な対処方法をやってみました。
まず、PyKf をインストール。
PyKf は上記のサイトが閉鎖されているようなので、以下からダウンロードしてください。
PyKf のソースを SourceForge からダウンロードしてください。
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 の末尾に追加。
これも元のサイトが閉鎖されているようなので、以下からダウンロードしてください。
Mailman を再起動して、保存書庫の再構築のコマンドを実行。
$ su # su - mailman $ Mailman/bin/arch --wipe メーリングリスト名
うまくいきました。