プロが教えるわが家の防犯対策術!

お世話になります。
perl5.8において文字コードを指定or変換する際
shift_jis
shift-jis
Shift_JIS
SJIS
EUC_JP
EUC-JP
utf-8
utf8
-と_の違いや大文字小文字の違いなど記述の違いを良く見かけるのですが、実際決まった指定方法などはあるのでしょうか。
逆に文字コードを指定する際、●●のように指定しても無効で●●のように指定しないと有効ではないですよ。。みたいな。

またperlに限らずPHPやHTML、XMLなどではどうなっているのでしょうか

どなたかご存知の方いましたら
・上記3つの文字コードについてと
・perlのバージョンの違い、言語の違いなど

文字コードの文字列の指定に関する全般についてご教授願えませんでしょか。

宜しくお願い致します。

A 回答 (2件)

文字コードを指定するモジュールによって、指定する文字列が違う場合があります。



たとえば、JcodeでシフトJISコードを指定するときはは'sjis'ですが、
Encodeでは次のような正規表現になります。

/\bshift.*jis$/i
/\bsjis$/i

これは、shift-jisでもShift_jisでもsjisでもSJISでもマッチします。
極端な話、shift(・∀・)jisでもマッチします(多分)

他の文字コードでも同様に正規表現でエイリアスが設定されていますので、詳しくはEncodeモジュールのperldocを参考にしてください。
    • good
    • 1
この回答へのお礼

モジュール毎に文字コードの文字列の指定を正規表現で指定してあるんでしょうかね。確認してみます。

ご教授頂きありがとうございました。

お礼日時:2006/04/04 09:41

適当に検索かけて見つけただけなので自信ないですが


CHARACTER SETS
http://www.iana.org/assignments/character-sets
というのがありました。検索かけるとわかりますが
Shift_JISはあってもShift-JISは存在しません
EUC-JPはあってもEUC_JPは存在しません

大文字小文字の区別は多分無いと思います。
根拠はありませんがそういう話を聞いたことが無いので・・・

この回答への補足

お返事大変遅くなりましたが、上記URLを参考にさせて頂きました。

とりあえず、EUC_JPは存在しない事とモジュールを呼び出す際
エラーになったケースもあり、エラーにならない場合=OKという
あいまいな認識ですが、とりあえずよしとしておこうと思います。

参考URLもご掲示頂きありがとうございました。

補足日時:2006/04/04 09:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!