- ベストアンサー
$strの漢字コードをEUCにするには
どうしたらいいのでしょうか? 「とほほ」に以下のサンプルがありましたがそうしたら$strがEUCに成るのでしょうか? # $strの漢字コードをEUCにしておいて if ($str =~ /[\x80-\xff]/) { print "全角文字が含まれてます"; }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>3バイトの補助漢字も対応しているのでしょうか? 3バイトの補助漢字の意味は、EUCの意味ですよね。 多分大丈夫だと思います。 コードの対象表を作成しているサイト様があったので参考URL(ずっと下の方)にあげておきます。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Perlの5.8からPerlで扱う文字はunicodeになりました。 なので、プログラム中の漢字コードをいうのは無意味なような気がします。 入力するファイルのコードの指定 出力するファイルのコードの指定 が意味があって 例えば入力するファイル(や文字)がシフトJISで 出力がEUCであるというのは、意味があります。 その場合でも、Perlで扱っているのは、unicodeを扱っています。 質問文のプログラムは、1バイトのどの領域が使われているかを調べて、ASCIIでない(つまり全角である)ということを調べているようです。 そういうテストをしたからといって文字列のコードを変換しているわけではありません。 回答になっていなかったらすみません。
お礼
ありがとうございます 3バイトの補助漢字も対応しているのでしょうか?
- fukku22
- ベストアンサー率57% (15/26)
このサンプルは「全角文字が含まれているかの判断」だけで、$str は何も変わっていません。 (そもそも、変換用途には使えないでしょう。) Perl の場合、漢字コード変換は jcode.pm (または古い jcode.pl)を使います。 参考URLは「jcode pm」の検索結果です。 この辺りのどこかに変換方法が説明されていると思います。
お礼
ありがとうございます jocde.pl は格納済みです 「とほほ」に書いている意味が分からなかったのです
お礼
ありがとうございます