• ベストアンサー

perl-cgiで1文字や2文字など短い、文字コードを正しく変換したい

一文字や、2文字の短い文字コードを正しく変換したいのですが何か、良い方法は無いでしょうか? 文字コードには、絶対に、SJISかUTF8のどちらかしか使っていません。 どなたか、お分かりになる方、教えていただけないでしょうか? よろしくおねがいいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

何文字であっても Encode の from_to を使えばいいと思います。 例 use Encode 'from_to'; # プログラムの最初の方でこれをやっておく。 # 実際に使いたい所でこれをする(この場合はShift_JISからutf8への変換)。 from_to($str, 'Shift_JIS', 'utf8'); # この後は $str の内容がutf8になっている。

その他の回答 (1)

回答No.2

UTF-8(UTF-8Nじゃなければ)かShiftJISなら、先頭にBOMがついているかどうかを判別すれば 大丈夫のような気がします。 また、入力する文字に記号が含まれていなければ、まず通常の判定ルーチンで 判別できるでしょう (ひらがなカタカナ漢字はUTF-8では全部3バイト) 半角カタカナや記号が含まれて、UTF-8Nである場合は確実な判定は不可能です。

関連するQ&A