[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: w3m-output-coding-system



白井です。

From: ARISAWA Akihiro <ari@xxxxxxxxxxxxx> さん曰く
Subject: [emacs-w3m:11011] w3m-output-coding-system
Message-ID: <87fxboqfot.fsf_-_@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Aug 2009 19:08:18 +0900

> iso-2022-7bit-ss2 では、丸数字などの所謂機種依存文字が表示できないことに
> 気付きました。
> これは、iso-2022-7bit-ss2 にエンコードする際に、丸数字を 
> japanese-jisx0213.2004-1 としてエンコードし、それを w3m が解せないため
> と思われます。

あぁ、本当ですね。気づかなかった。というわけで、

> w3m が解せる japanese-jisx0213-1 の charset-priority-list を高くすれば
> 表示されましたが、それを emacs-w3m でやるのも何なので、
> w3m-output-coding-system を utf-8 にしたいと思います。

賛成です。

> ついでに、Mule-UCS を利用時も utf-8 にしちゃおうかと思うのですが、
> 何か問題あります?

いままで non utf-8 で使っていた人が utf-8 になると『テーブルの枠
がずれる』という問題は発生すると思うのですが、根本的には大丈夫だ
と思います。Meadow だとずっとその環境だし。

> (defcustom w3m-output-coding-system
> [...]
>    ((eq w3m-type 'w3m-m17n)
>     (cond
>      ((equal "Japanese" w3m-language)
>       (if (and (featurep 'w3m-ems)
> 	       (or (>= emacs-major-version 22)
> 		   (featurep 'un-define)))
> 	  'utf-8
> 	'iso-2022-7bit-ss2))
>      ((w3m-find-coding-system 'utf-8)
>       'utf-8)
>      (t
>       'iso-2022-7bit-ss2)))

(defcustom w3m-output-coding-system
  (cond
   ((not (featurep 'mule)) 'iso-8859-1)
   ((eq w3m-type 'w3mmee) 'ctext)
   ((eq w3m-type 'w3m-m17n)
    (cond
     ((or (fboundp 'utf-translate-cjk-mode)
	  (coding-system-p 'utf-8-emacs)
	  (featurep 'un-define))
      'utf-8)
     (t
      'iso-2022-7bit-ss2)))
   (w3m-accept-japanese-characters 'w3m-euc-japan)
   (t 'w3m-iso-latin-1))
 ...

だと、emacs21 で utf-8 を使っていたヨーロッパの人以外は救えると
思います。どんなもんだろう?

>     (if (and (w3m-find-coding-system 'utf-8)
> 	     (let ((text (condition-case nil
> 			     (eval (get-language-info 
> 				    current-language-environment 'sample-text))
> 			   (error nil))))
> 	       (if text
> 		   (string= (decode-coding-string
> 			     (encode-coding-string text 'utf-8)
> 			     'utf-8)
> 			    text)
> 		 t)))
> 	'utf-8
>       'iso-2022-7bit-ss2))

この方法は初めて見ました。ある意味すげ〜。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)