[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: 特定のケースで文字コードがJISで保存されてしまい困っています
- X-ml-count: 5439
- Subject: Re: 特定のケースで文字コードがJISで保存されてしまい困っています
- From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
- Date: Wed, 19 May 2004 12:36:37 +0900 (JST)
- User-agent: Mew version 4.0.63 on Emacs 21.1 / Mule 5.0 (榊) / Meadow-2.00pre2 (桔梗)
本題は解決しているようですが枝話をさらに続けちゃいます.
mito> 何か勘違いしていたのかな? 以前、そんな挙動をしていたと思っ
mito> たんですが、今確認したら prefer-coding-system を SJIS にして
mito> EUCのファイルを開いたら化けてしまいました。
SJIS と EUC は一部重複したコード域を使っているので正しく識別でき
ないことがあります. そういう話じゃないんでしょうか. 特に半角カナ
が入っているとてきめんに利きます.
# たとえば"これは、EUCです。″ (本当は句読点が半角)と書いたファイ
# ルをEUCでセーブして, 読み込むと化けます. "珈琲"でも化ける.
mito> 3. C-x C-f 新規ファイル ;; モードラインは 「-S\--」
mito> 4. abc[Enter] ;; 改行必須
mito> 5. C-x C-s ;; モードラインは 「-S\--」
mito> 6. C-x C-v ;; モードラインは 「--\--」
...
mito> ここまでの挙動はわかるのですが、なぜ 4 で改行をつけなかった
mito> 場合には 6 で「-S\--」になるのでしょう?
Emacs では基本的にファイルの読み込みの時に文字コード系と改行コー
ド種別の自動判別を試みます.
'abc'に対しては文字コード系は非決定となり, 改行をつけると改行コー
ドは確定できるので, 改行コードだけが確定されているという
'undecided-dos というコード系が採用されます.
一方改行をつけないと改行コードも非決定となって('undecided), ロー
カルの buffer-file-coding-system は設定されません. 結果デフォルト
である default-buffer-file-coding-system の値が使われることになり
ます. ここでは 'japanese-shift-jis-dos .
mito> また、2 を実行しなければ、
実行しなくても同じ値が入っているはずなんですが..
mito> These default coding systems were tried:
mito> undecided-dos iso-2022-jp
mito> However, none of them safely encodes the target text.
mito>
mito> のように coding-system を問い合わせてきますが、2 を実行する
mito> とこれがなくなるのはなぜでしょう?
これは私の手元(2.00pre2)で7の手順で'あ'と入力しても再現しない(勝
手に iso-2022-jp でセーブする)のですが, 7の"日本語"として何を入力
したのでしょうか.
--
堀口恭太郎