• ベストアンサー

$strの漢字コードをEUCにするには

どうしたらいいのでしょうか? 「とほほ」に以下のサンプルがありましたがそうしたら$strがEUCに成るのでしょうか? # $strの漢字コードをEUCにしておいて if ($str =~ /[\x80-\xff]/) { print "全角文字が含まれてます"; }

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>3バイトの補助漢字も対応しているのでしょうか? 3バイトの補助漢字の意味は、EUCの意味ですよね。 多分大丈夫だと思います。 コードの対象表を作成しているサイト様があったので参考URL(ずっと下の方)にあげておきます。

参考URL:
http://hp1.jonex.ne.jp/~nakajima.yasushi/
keyguy
質問者

お礼

ありがとうございます

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Perlの5.8からPerlで扱う文字はunicodeになりました。 なので、プログラム中の漢字コードをいうのは無意味なような気がします。 入力するファイルのコードの指定 出力するファイルのコードの指定 が意味があって 例えば入力するファイル(や文字)がシフトJISで 出力がEUCであるというのは、意味があります。 その場合でも、Perlで扱っているのは、unicodeを扱っています。 質問文のプログラムは、1バイトのどの領域が使われているかを調べて、ASCIIでない(つまり全角である)ということを調べているようです。 そういうテストをしたからといって文字列のコードを変換しているわけではありません。 回答になっていなかったらすみません。

keyguy
質問者

お礼

ありがとうございます 3バイトの補助漢字も対応しているのでしょうか?

  • fukku22
  • ベストアンサー率57% (15/26)
回答No.1

このサンプルは「全角文字が含まれているかの判断」だけで、$str は何も変わっていません。 (そもそも、変換用途には使えないでしょう。) Perl の場合、漢字コード変換は jcode.pm (または古い jcode.pl)を使います。 参考URLは「jcode pm」の検索結果です。 この辺りのどこかに変換方法が説明されていると思います。

参考URL:
http://www.google.co.jp/search?hl=ja&c2coff=1&q=jcode+pm&lr=
keyguy
質問者

お礼

ありがとうございます jocde.pl は格納済みです 「とほほ」に書いている意味が分からなかったのです