[Date Prev][Date Next][Thread Prev][][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 )