• ベストアンサー

jcode.plのconvertを使用しなければならない場面とは?

こんにちは。 jcode.plのconvertがjis,sjis,euc 間の相互変換が 行えるのはわかりました。 しかしながら、その用途がよくわかりません。 日本語にはその3種類の漢字コードがよく使われているのは なんとなくわかるのですが それを例えば &jcode::convert(\$test,'sjis'); というように、sjisにするというのは、どのような場面があって どのような必要性があってそのようにするのか? またeucに変換しなければならない場面等、 ネットで調べましたがその点がよくわからないのです。 例えば、Windows環境で生成されたテキストファイルの文字列を読み込んで Linux環境のPerlで出力しようとする時に、不具合が出るので 日本語は必ずEUCで変換する、など。 (この文章が正しいのかどうか適当です。 このような場面が世の中にはあって、その場合はこうする、というような 例として書きました) ご存知の方、どうぞよろしくお願いします。

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

UNIXの世界は、EUC。 Winodws や Macintoshの世界は、SJIS。 メールの世界は、iso-2022-jp(JIS)。 が、標準的な文字コードです。 文字コードが複数ある理由については、既にある程度ご存知の様ですので、詳しい説明は割愛します。 どうして、標準的なのかは、歴史的由縁がいろいろとあるからで、きっと、文字コードが複数存在する理由を調べる過程で、少なからず触れられていると思います。 CGIやHTMLを、日本語EUC漢字で書いている場合には、jcode.pl(最近は、jcode.pmが標準です)は不要かも知れません。 必要になってくるのは、SJISで書かれた文章をEUCに変換する場合などです。必要な理由ははじめに書いた通り、標準の文字コードが違うためです。 逆に、SJISに変換する必要がでてくる時は、ユーザー用にCSVファイルを作成する。などの用件がでた時などに必要になってきます。 ここに出したものは、あくまで事例に過ぎません。OSの環境などにより、使用する文字コードの標準が異なっているため、どうしても文字コードの変換の必要性はでてきます。 なお、日本語の漢字コードは3種類ではありません。もっともっとたくさんのコード形態があります。単に、有名なものが EUC, SJIS, JIS である。と言うことです。ご注意ください。 なぜ、不具合が発生するのかは、もう調べましたか? もし、まだでしたら、面白いですから調べてみてください。Google などで検索すればいろいろな情報を見ることができますよ。

hiro-long
質問者

お礼

ご返答ありがとうございます。 詳しい解説、とてもわかりやすいです。 >ここに出したものは、あくまで事例に過ぎません。OSの環境などにより、使用する文字コードの標準が異なっているため、どうしても文字コードの変換の必要性はでてきます。 そうなんです。自分が知りたいのは そういう色々なケースなんです。 もちろん、全てのケースを列挙できるはずはないと思いますが、 それでも代表的な例・パターンというものが存在するなら それがどんな形を取ればいいのか教えて頂きたいのです。 もしよろしければ、その部分補足して頂けると 大変助かります。 どうぞよろしくお願い致します。

その他の回答 (2)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

> どんなケースがあって、なぜそれが起こるのか これについては参考URLをご一読ください。

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm#JP_EUC_JP
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

もっとも有名なケースは、CGIでのデコード処理でしょう。 出来の悪いブラウザの中には、HTMLの文字コードとは異なるコードでフォーム送信してくるものもあります。そういう場合でも正しく処理するためには、コード変換が必要になります。(最近はそういうブラウザも見かけなくなりましたが・・・) また、シフトJISでスクリプトを書いている場合、きちんと処理しないと様々な場面で不具合が生じるため、問題が起きそうな所では一時的にEUCして処理する、なんて人もいます。 他にも、メール送信スクリプトでは件名や本文をJISに変換する必要があるし、アクセス解析スクリプトではキーワード解析時に文字変換が必要になります。 ※検索エンジンがUnicodeである場合、jcode.plだけでは対処できないので、Jcode.pmやEncode.pmが必要です。

hiro-long
質問者

お礼

ご返答ありがとうございます。 >シフトJISでスクリプトを書いている場合、きちんと処理しないと様々な場面で不具合が生じるため、問題が起きそうな所では一時的にEUCして処理する なるほど。そういうのがあるんですね。 しかしながら、自分が知りたいのは おっしゃっているケースの具体的な形なんです。 例えば、この例であげてくださっている 「きちんと処理しないと不具合が生じる」 というのが、 どんなケースがあって、なぜそれが起こるのか、 そしてjcode.plを使うとそれが解決されるまでの パターンを知りたいのです。 お手数になりますが、もしよろしければ また補足して貰えますでしょうか。 よろしくお願いします。

関連するQ&A