[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: form のエンコード
>>>>> In [emacs-w3m : No.09885] 青田さん wrote:
> Katsumi Yamaoka <yamaoka@xxxxxxx> writes:
>> Emacs 21 と XEmacs に無い関数を使っているのはちょっとマズいので、
>> 例えば添付のパッチのようにするのはいかがでしょう?
> 確認不足でした、すみません。 unencodable-char-position() がない時に完全に
> 消してしまうのも少し不安です。以下のコードだと動きますか?
ううむ。例えば utf-8 だと Emacs 21 + Mule-UCS でも、こういういや
な問題 (全角→半角変換) があるんですが、いかがでしょう?
(let ((str (string (make-char 'japanese-jisx0208 38 65))) ;; α
(coding 'utf-8))
(string= str
(decode-coding-string
(encode-coding-string str coding)
coding)))
=> nil
それから、
> + (w3m-static-if (fboundp unencodable-char-position)
Emacs 21.x と 22.1 および現在の 23.0.50 では、byte-code に互換性
があるようなので、static は使わない方が良いかと。Emacs 23.0.60
(Unicode-2) とそれ未満では互換性が無いことを確認しています。
これはコンパイル済みの emacs-w3m を配布する人たちがいて、それを
コンパイルしたときとは異なる版の Emacs で使う場合を想定している
んですが、そんなことを心配する必要は無いのかな。実はちょっと試し
た限り、すでに Emacs 22.1 でコンパイルしたものを 21.1 で使うこと
ができなくなっていました。
>>> サーバの coding-system ではエンコードできない文字があっても正確に保存/復
>>> 元ができるようになりますし、サーバが coding-system を変更しても文字化けが
>>> 起こらずにすみます。しかし、その一方で一部の既存のバックアップが文字化け
>>> してしまうという問題もあります :-(
>>
>> 既存のものは従来とおりに扱って、新しいものには
>>
>> ;-*- coding: utf-8; -*-
>>
>> のようなものを付けるのではどうですか?
> これより coding-system-for-read のほうが優先されてしまいませんか?
はい。ちゃんとコードを読んでいないのでごちゃごちゃ書くのをやめて
しまったんですが、ファイルを binary で読んで coding cookie を自
前で parse することを想定していました。(そういうことをする関数が
あるんですが、Emacs と XEmacs で異なるので、自分でやってしまう方
が管理しやすいかもしれません。)
そんなに大事なファイルでもないから、新しいものには何らかのフラグ
を付けておいて、無いものは消すか無視する、でも良いような気もして
きました。
--
山岡