[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
w3m-correct-charset-alist (was: w3m-filter and w3mmee/w3m-m17n)
w3m-correct-charset-alist が導入された理由をようやく理解したのですが,
この変数の分かりにくさが気になってきました.
まず,w3m-charset-coding-system-alist でも,不正な MIME-charset を受容
しているので,w3m-correct-charset-alist と重複した項目が発生してしまっ
ています.その上,w3m-correct-charset-alist は文字列の連想配列であるの
に対して, w3m-charset-coding-system-alist はシンボルの連想配列になっ
ていますから,余計に混乱します.
で,この問題なんですが,2通りの解決策がありそうです.
(1) w3m-charset-coding-system-alist には IANA[*] に登録された正しい
charset と coding-system の対応のみを登録するように変更して,
w3m-charset-to-coding-system で常に w3m-correct-charset を呼ぶよう
にする.
(2) w3m-correct-charset-alist を廃止して,新たに coding-system から
MIME charset を得る関数を定義する.例えば,Emacs21 では,
(coding-system-get (w3m-charset-to-coding-system 'x-euc-jp)
'mime-charset)
=> 'euc-jp
とすれば,不正な MIME charset を正しい charset に変換できます.
後者の方が応用範囲は広いだろうと思いますが,ちょっとしんどいかも知れま
せん.
と思って,(1)の方法での対応をやりかけたんですが,途中で挫折しました.
何故かと言いますと,(1)の方法では
w3m-charset-coding-system-alist:
Right MIME charset -> known coding system の写像
w3m-correct-charset-alist
Wrong MIME charset -> Right MIME charset の写像
と整理することになっていたのですが,このままでは Wrong MIME charset を
known coding system と対応づける写像(ex. x-unknown -> undecided)を,ど
ちらに書くべきかがはっきりしません.
というわけで,どうしたらいいのかなあと考え込んでいるのですが,どなたか
名案はありませんか?
[*] http://www.iana.org/assignments/character-sets
--
土屋 雅稔 ( TSUCHIYA Masatoshi )