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

Re: decode-coding-regin() with utf-8



こんにちは、白井です。

From: Kenichi Handa <handa@m17n.org> さん曰く
Subject: Re: decode-coding-regin() with utf-8
Message-ID: <200503150537.OAA12040@etlken.m17n.org>
Date: Tue, 15 Mar 2005 14:37:56 +0900 (JST)

> > いつからかはわかりませんが、最近の Emacs CVS Head の CJK モード
> > を使って、utf-8 (や utf-16) を扱う場合、Emacs 立ち上げ後、最初に
> > utf-8 を使うときに subst-jis などをロードしますが、そのときの関
> > 数が decode-codeing-region() だと decode 結果が化けるようです。
> 
> (set-buffer-multibyte nil) が原因です。 utf-8 は
> post-read-conversion 関数を使いますが、これは unibyte-buffer
> ではうまく動きません。

がーーん、恥ずかしながら、今の今まで 『生のバイト』 = 『unibyte』
で OK と思い込んでいました。

> (set-buffer-multibyte nil) しなくてはならない理由はなんでしょ
> うか?

emacs-w3m で utf-8 なページを表示/取得したときに化けるときがあり
まして、追求したところ、Emacs 立ち上げ後に初めて utf-8 を扱うの
がそのページのとき化ける、というのを発見しまして、それをエミュレー
トしたのが前回の変なコードでした。

また、emacs-w3m も decode-codeing-region と
(set-buffer-multibyte t) の順番を変えたところ、きちんと動作する
ことを確認しました。

いつもいつも的確な指摘をありがとうございます。(__)

# 後は emacs-w3m ML の方で続けましょう。> 関係者一同

-- 
白井秀行 (mailto:shirai@meadowy.org)