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

Re: w3m-output-coding-system



Hideyuki SHIRAI (白井秀行) writes:

>> w3m-output-coding-system を utf-8 にしたいと思います。
> 賛成です。

どうも。
判定方法はもうちょっと考えてみます。

>> ついでに、Mule-UCS を利用時も utf-8 にしちゃおうかと思うのですが、
>> 何か問題あります?
> いままで non utf-8 で使っていた人が utf-8 になると『テーブルの枠
> がずれる』という問題は発生すると思うのですが、根本的には大丈夫だ
> と思います。Meadow だとずっとその環境だし。

mule-unicode-XXXX-YYYY が半角幅で表示されない環境でしょうか?

ところで、w3m に East Asian Ambiguous パッチがあたった環境だと、
Emacs22 以前では罫線が二重に出ちゃいますねえ。

PNG image

デフォルトは以下のようにしたくなってきました(^^;

(defcustom w3m-use-symbol
  (and (featurep 'mule)
       (eq w3m-type 'w3m-m17n)
       (not (eq w3m-output-coding-system 'utf-8)))

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

もうちょっと頑張ってみました。

(defun validate-utf-8 (&optional lang)
  (let ((text (condition-case nil
		  (eval (get-language-info
			 (or lang current-language-environment)
			 'sample-text))
		(error nil)))
	converted)
    (if text
	(or (string= (setq converted (decode-coding-string
				      (encode-coding-string text 'utf-8)
				      'utf-8))
		     text)
	    (let ((coding (car (get-language-info
				(or lang current-language-environment)
				'coding-system))))
	      (and coding
		   (string= (encode-coding-string converted coding)
			    (encode-coding-string text coding)))))
      t)))

これで GNU Emacs ではだいたい期待通りの判定ができます。

- Emacs23 は全て t
- Emacs22 は Vietnamese, Tibetan, Thai, Ethiopic といった mule-utf-8 で
  未対応の言語のみ nil
- Emacs21.4 は Vietnamese, Tibetan, Thai, Korean, Japanese, Ethiopic,
  Cyrillic-ALT, Cyrillic-KOI8, Chinese-BIG5, Chinese-GB で nil
  (Cyrillic-* が残念なところ)
- Mule-UCS 環境では Vietnamese, Tibetan, Chinese-BIG5, Chinese-GB が nil
  Vietnamese と Chinese-* は unicode-basic-translation-charset-order-list
  が適宜設定されていれば t

Emacs-21.2 は unify-8859-on-encoding-mode が無いので、nil となってしまう
言語が結構ありますが、まあいいですよね。
XEmacs は環境が無いので不明です。

さて、これを emacs-w3m に組み込んでよいものか(^^;
w3m-search-engine-alist の utf-8 判定にも使えるとは思いますが。
cf. [emacs-w3m:10240]


TSUCHIYA Masatoshi writes:

> [emacs-w3m:10419] も見てやって頂けませんか?
>
> 基本的に,CCS が異なっていて,かつ,往復変換できない場合は全て問題なんだ
> と思います.

UTF-Translate-CJK モードは、日本語で使うには utf-translate-cjk-unicode-range
を設定しないと使い物にならないんですよね。設定されてない状態だと

(A) iso-2022-7bit-ss2 だと UTF-8 のページが化ける [emacs-w3m:07166]
(B) utf-8 だと legacy encoding なページで post できない [emacs-w3m:08558]

と、utf-8 <=> legacy encoding の変換が入るとどうにもならない…。

-- 
有沢 明宏