- ベストアンサー
文字コードを指定する際sjisなのかshift_jisかshift-jisなのか
お世話になります。 perl5.8において文字コードを指定or変換する際 shift_jis shift-jis Shift_JIS SJIS EUC_JP EUC-JP utf-8 utf8 -と_の違いや大文字小文字の違いなど記述の違いを良く見かけるのですが、実際決まった指定方法などはあるのでしょうか。 逆に文字コードを指定する際、●●のように指定しても無効で●●のように指定しないと有効ではないですよ。。みたいな。 またperlに限らずPHPやHTML、XMLなどではどうなっているのでしょうか どなたかご存知の方いましたら ・上記3つの文字コードについてと ・perlのバージョンの違い、言語の違いなど 文字コードの文字列の指定に関する全般についてご教授願えませんでしょか。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文字コードを指定するモジュールによって、指定する文字列が違う場合があります。 たとえば、JcodeでシフトJISコードを指定するときはは'sjis'ですが、 Encodeでは次のような正規表現になります。 /\bshift.*jis$/i /\bsjis$/i これは、shift-jisでもShift_jisでもsjisでもSJISでもマッチします。 極端な話、shift(・∀・)jisでもマッチします(多分) 他の文字コードでも同様に正規表現でエイリアスが設定されていますので、詳しくはEncodeモジュールのperldocを参考にしてください。
その他の回答 (1)
適当に検索かけて見つけただけなので自信ないですが CHARACTER SETS http://www.iana.org/assignments/character-sets というのがありました。検索かけるとわかりますが Shift_JISはあってもShift-JISは存在しません EUC-JPはあってもEUC_JPは存在しません 大文字小文字の区別は多分無いと思います。 根拠はありませんがそういう話を聞いたことが無いので・・・
補足
お返事大変遅くなりましたが、上記URLを参考にさせて頂きました。 とりあえず、EUC_JPは存在しない事とモジュールを呼び出す際 エラーになったケースもあり、エラーにならない場合=OKという あいまいな認識ですが、とりあえずよしとしておこうと思います。 参考URLもご掲示頂きありがとうございました。
お礼
モジュール毎に文字コードの文字列の指定を正規表現で指定してあるんでしょうかね。確認してみます。 ご教授頂きありがとうございました。