トップ «前の日記(■2004-09-26) 最新 次の日記(■2004-10-01)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|07|10|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2004-09-28

* [雑感] モニタが壊れてまあ大変B!

 日曜日、鬱々と”今月のAcme”を書いていたところ、モニタが突然真っ暗になってそれっきりでした。しかたないので前機NEC PC-9821V12に付属していたモニタを使っています。捨てなくてよかったです。でも大変見づらいです。今まではDiamondtronを使ってましたが、今度は液晶にしようかしら。Acmeは特別編にて後日。

* [Perl] EncodeモジュールでISO-2022-JP MIME-HeaderB!

 Template-Toolkitの日本語情報を探していてたどり着いたページで、EncodeモジュールでUTF-8にエンコードされたMIME-Headerが、携帯メーラなどで解釈できないので結局Jcodeを使うことにしたとあります。せっかくEncodeモジュールが利用できるのにJcodeに戻すのはなんだか残念です。もちろんEncodeのラッパーであるJEncodeも同じで、今ままではUTF-8でも大抵のメーラが対応していると思って放置していました。そこでなんとか楽をしつつISO-2022-JPに対応できる方法を考えてみたいと思います。で、とりあえずEncode::MIME::Hedaer:ISO_2022_JPというサブクラスをつくって、utf8しているところをiso-2022-jpになるようオーバーライドすることにしました。ところが、Encode::MIME::Headerではmime-encodeを実行するサブルーチンのリファレンスが定数(constant subroutine)の中に埋め込まれていて、その定数からデリファレンスして呼び出されています。つまり、エンコード処理部分が実質的にprivateになっていて、楽ができないのです。結局、周辺部分からシンボルテーブルを弄って、何とか最小限の努力でISO-2022-JPにエンコーディングできるようになりました。もっとうまい方法をご存知の方がいらっしゃいましたらぜひ教えてください。

 というわけで、JEncode v.1.30からMIME-HeaderのエンコードにISO-2022-JPをサポート。ただし、通常は従来通りUTF-8で行い、$JEncode::MIME_HEADER_ISO2022JPに真値を設定するとISO-2022-JPでエンコードするようになります。本当にうまくいってるのかな?

[追記] mime_encode, mime_decodeともに正しい処理をしていませんでした。とくにmime_encodeは前から正しくなかったようです。1.31で修正しました。

[]