• ベストアンサー

JcodeモジュールとEncodeモジュール

以下、Perl5.8でJcodeモジュールを使った場合とEncodeモジュールを使った場合の違いについて、知りたいです。 ※そもそもこのモジュールは同時に使ったらだめなのでしょうか? use strict; use utf8; use Jcode; use Encode; my $dat1 = "あイ卯(1)Iⅰ"; Jcode::convert(\$dat1, "utf8"); my $dat2 = "あイ卯(1)Iⅰ"; $dat2 = Encode::encode("utf8", $dat2); 文字コード変換の正しい使い方が知りたいです。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

Jcode.pmの2.0以降では、Encodeがある環境(つまり本体のバージョンが 5.8以降)の場合には Jcode は Encodeのラッパーとしてインストールされます。 つまり変換そのものはEncodeがやっていることになります。 ということで基本的に違いはありません。 混在しても悪影響はありません。 ただし、 > $dat2 = Encode::encode("utf8", $dat2); Encode の encode/decode は単なるコード変換だけではないので、 コード変換のみが目的なら from_to を使ったほうが良いです。 > 文字コード変換の正しい使い方が知りたいです。 正しいとか間違っているとかはないと思いますが、使えるPerl本体の バージョンが5.8以降ならばEncode.pmは標準で入っているはずなので、 Encodeを使っておけばよいでしょう。 そうではなくて、、5.6とかさらにそれより前のものがある環境でも使う ようなスクリプトなら、Jcode.pmを使わざるを得ないと思います。

関連するQ&A