From: Tanaka Akira Date: 2007-12-29T02:29:18+09:00 Subject: [ruby-dev:32880] Re: Window でのデフォルトエンコーディング In article <6.0.0.20.2.20071228184922.0846e270@localhost>, Martin Duerst writes: >>Shift_JIS と思い込んでいるだけで、実は CP932 で書いていると >>いうことはないでしょうか。 > > 多くの場合、スクリプトそのものは両方で扱い方が違う文字は > 殆ど含まれていないのは現状ではないでしょうか。 そうかもしれません。しかし、CIRCLED DIGIT ONE などを気にせず 使うという慣習は CP932 を使っていることを意味していると思い ます。 >>スクリプトを書くときには CP932 を指定させる方向はうまくいか >>ないんでしょうか。 > > この辺りはちょっと限界があるかもと思います。 > 今まで -KS とか皆やってたと思います。 -Ks を長い間使っていたというのはたしかです。そして実際のとこ ろそれは日本語版 Windows では CP932 のために使われていたわけ です。 おそらく、日本語版 Windows では (Unicode を扱わない場合) すべて CP932 として扱いたいというのがいちばんよくある状況な のではないでしょうか。 Shift_JIS と CP932 を使い分けたいという要求がそれほどあると は思えません。 ですから、-Ks は CP932 を意味するのがいいんじゃないでしょう か。 頭文字じゃないので変な感じはしますが、-K は昔からあって互換 性が必要ですし、おそらく CP932 を意味するのがもっとも互換な 挙動でしょう。 > しかも Windows を使っている > 人は大体自分が shift_jis を使っていると思い込んでいると思います。 思い込んでいるからといって、CP932 を Shift_JIS と宣言させる ことを認めるのでしょうか? 文字を正しく扱うためには、encoding を正しく認識することが必 要です。そこで間違ってもよいというのは文字の扱いに支障を来し ます。 Java では以前 Shift_JIS という名前が CP932 を意味するように 変化し、でもやっぱり混乱を来して元に戻すことになったようです。 http://www.ingrid.org/java/i18n/encoding/shift_jis.html 結局、正しい情報を与えない限り正しい処理はできないわけで、そ こをあきらめるのはまずいでしょう。 そして、やりたいことは CP932 でぜんぶ扱うことだとすれば、そ れが容易になる仕掛けを作っていくのが良くて、Shift_JIS との混 在を容易にするというのはやりたいことにはつながりにくいように 思います。 そして、-Ks が CP932 とすれば、ユーザはいままでどおり -Ks と 書けばいいので、とくに問題はないのではないかと思います。 coding cookie を書くときには CP932 とか Windows-31J と書かな ければなりませんが、coding cookie は新しく導入されるものなの で互換性は問題ありません。また、間違って Shift_JIS と書いて しまえば (なかださんの変更が入らなければ) 文字列の連結等です ぐに問題に気がつくので、むしろ良いのではないでしょうか。 -- [田中 哲][たなか あきら][Tanaka Akira]