作者: Bruce.
日時: 2007/5/14(00:34)
Bruce.です。

塩野七生女史の講演会に行ったという藤岡さんがとてもうらやましい日曜日の
深夜ですがいかがお過ごしでしょうか
#曜日変わってるか割ってる

なぜわたしと機械さんとの間にはこうもディスコミュニケーションが
発生してしまうのでありましょう
#推敲が足りない >じぶん

機械伯爵 さんは書きました (2007/05/13 15:11):
>> いやcoding指定することについては問題ないと思いますし、むしろ無いほうが
>> 問題が出るでしょう。ここで気にしているのは、ShiftJIS と mbcs という
>> エンコーディングのどちらが良いかということです。mbcsというのはWindows
>> 環境でのみ意味がある指定ですので、ほかの環境に持っていくのであれば
>> mbcsを使うべきではないでしょう。しかしながら、そうであるならShiftJIS
>> というエンコーディングも避けるべきだとわたしは思いますので、その意味では
>> 両者に大差はありません。
> 
>  S-JISはMacでも読めます(実際、標準)し、Linuxでも、今時のシステムなら
> S-JISはフツーに読めますので、スクリプトのポータビリティはそんなに低く
> ありません(S-JISはそもそもワープロ標準でしたので)

んと。「そうであるなら」と書いてある以降ですが、その理由は前の節と同じ
ではありません。明確に書いてはいないので誤解されても仕方ないとは思いますが。

単純に ShiftJISはダメ文字の扱いが面倒なので使わないほうがいい程度の理由です
(まあPythonの場合は Unicodify してしまえばその後はダメ文字関係ありませんが)。

さらにもうひとつ付け加えるならば、「ShiftJIS」というものがエンコーディング
であると同時に文字集合としても使われていて、後者の意味合いでは、
Windows の ShiftJIS とMacintosh の ShiftJIS と
各種UNIXでのShiftJIS では使える文字に差異があります。

Windowsで○つき数字のデータがMacに持って行くと曜日に化けるというのは
わりと有名な部類だろうと思います。Pythonでの事情は詳しくはしりませんが、
PerlのEncode.pmではわりと strict に扱っていて、エンコード名として
shiftjis(もしくはそのalias)を指定した場合にはそれが指す文字集合は
JIS X 0208 のそれです。つまり、Windowsでは普通に使えるIBM拡張漢字
だとか先の丸付き数字は対象になりません。

まあエンコード名で cp932 を使えば問題はないのですがこれはあまり
知られてはいないようです(とくに初心者には)。
#Pythonの扱うエンコード名にも cp932 はありますが、扱いが shiftjisと
#どう違うのかは知りません。

ことほど斯様に(潜在的な)問題があるわけで、ShiftJISもやめたほうが
いいんじゃね。と書いた次第。

> ありません(S-JISはそもそもワープロ標準でしたので)

だ う と (笑)
ちょっと前の古川さんのブログ等を読めばそれが違うことがわかります。

機械さんが、「デファクトスタンダード」といった意味合いで
ワープロ標準という言葉を使ったのならまあわからなくもありませんが。


>  ただ……
>  
>> utf-8でいいと思うんですけどねえ。
> 
>  とは思います。Pythonのデフォルトはコレですし、特にZopeとか使ってると、
> コレ以外は厄介ですので。
> 
>  面倒ですが、Winでもやはり、UTF-8エンコーディングが普通に使えるエディタ
> は用意した方がいいと思います(ただ、そこの敷居は低く無いんだろうなぁ)

メモ帳が utf-8 使えますが?
BOMついちゃいますけど、Pythonインタプリタはそのへんよろしく解釈してくれた
と記憶していますが違いましたっけ?

Windows環境で使われているエディタを挙げろと云われたとして、utf-8を
満足に使えないものがあるのか疑問なんですが。「普通に使える」という
レベルが、Unicodeの拡張領域Bに入っているような文字もきちんと描画や
処理(泣き別れなどを起こさない)ができるかと云われるとちょっと怪しい
ものもありますけど。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk@...
        web  www.kt.rim.or.jp/~kbk/zakkicho/
             homepage3.nifty.com/farstar/