Bruce.です。
閑舎 writes:
> > PythonはPerlと違って、スクリプトをShiftJISで記述しても
> > 問題ないし。
>
> 正規表現部分も含めてですか? Perl だと、正規表現は SJIS でなくても他に
> EUC-JP なら無問題のスクリプトが SJIS になっただけで訳のわからんエラーに
> なることがありますが、そういったレベルのエラーがない、ということですか?
上で問題ないといっているのは例えば
$str = "一覧表"
とかしたときに素のPerlではエラーになります(use encoding 'sjis' で
回避できるけど別の問題を持ち込むことになる)。自分でEncodeモジュール
やJcodeモジュールのメソッドを使って変換するにしても、スクリプト自体
をShiftJISで記述することには問題があります。
一方Pythonでは
スクリプトの1,2行目あたりに
# coding: mbcs
とか書いておくとこの一覧表問題は起きません。Unicode化していない
文字列はあくまでバイト列であり、マルチバイトデータが入っていても
独立したバイトの並びとしかみなされませんので、正規表現演算を
適用しようとしても多分思い通りには行きません。が、Perlのダブル
クォートで括った文字列中に置かれたShiftJIS文字列のように
カタストロフを起こしたりはしません。
@A = qw(hello world);
print "ァA";
をjperlでないperlで実行してみてください。
まあそんなところです。
いじょ。