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

w3m-output-coding-system



Hideyuki SHIRAI (白井秀行) writes:

>> ところで、日本語環境での Emacs23 の w3m-output-coding-system の
>> デフォルトを iso-2022-7bit-ss2 から UTF-8 に変えようかと思って
>> いたのですが、こうなると iso-2022-7bit-ss2 のままがよいのかも。
> ずーーと、UTF-8 で生活してきたのだけど、まれに iso-2022-7bit-ss2
> で表示した方が良いページにぶつかるぐらいですね(簡単に切り替えら
> れるけど)。iso-2022-7bit-ss2 で生活していた時は逆のことを思った
> ことがあるから、これも正解はないのかも。

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 にしちゃおうかと思うのですが、
何か問題あります?

(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)))
[...]


以下のように UTF-8 が現在の language-environment で使いものになれば
utf-8 にしようかと思ったのですが、Emacs22/21 だと Romanian で nil に
なっちゃったのであきらめました。何か良い手はないものですかね。

    (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))

-- 
有沢 明宏