プロが教えるわが家の防犯対策術!

こんにちは。

jcode.plのconvertがjis,sjis,euc間の相互変換が
行えるのはわかりました。
しかしながら、その用途がよくわかりません。

日本語にはその3種類の漢字コードがよく使われているのは
なんとなくわかるのですが
それを例えば

&jcode::convert(\$test,'sjis');

というように、sjisにするというのは、どのような場面があって
どのような必要性があってそのようにするのか?
またeucに変換しなければならない場面等、
ネットで調べましたがその点がよくわからないのです。

例えば、Windows環境で生成されたテキストファイルの文字列を読み込んで
Linux環境のPerlで出力しようとする時に、不具合が出るので
日本語は必ずEUCで変換する、など。
(この文章が正しいのかどうか適当です。
このような場面が世の中にはあって、その場合はこうする、というような
例として書きました)

ご存知の方、どうぞよろしくお願いします。

A 回答 (3件)

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 などで検索すればいろいろな情報を見ることができますよ。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

詳しい解説、とてもわかりやすいです。

>ここに出したものは、あくまで事例に過ぎません。OSの環境などにより、使用する文字コードの標準が異なっているため、どうしても文字コードの変換の必要性はでてきます。

そうなんです。自分が知りたいのは
そういう色々なケースなんです。
もちろん、全てのケースを列挙できるはずはないと思いますが、
それでも代表的な例・パターンというものが存在するなら
それがどんな形を取ればいいのか教えて頂きたいのです。

もしよろしければ、その部分補足して頂けると
大変助かります。

どうぞよろしくお願い致します。

お礼日時:2004/03/24 21:03

> どんなケースがあって、なぜそれが起こるのか



これについては参考URLをご一読ください。

参考URL:http://www.din.or.jp/~ohzaki/perl.htm#JP_EUC_JP
    • good
    • 0

もっとも有名なケースは、CGIでのデコード処理でしょう。


出来の悪いブラウザの中には、HTMLの文字コードとは異なるコードでフォーム送信してくるものもあります。そういう場合でも正しく処理するためには、コード変換が必要になります。(最近はそういうブラウザも見かけなくなりましたが・・・)

また、シフトJISでスクリプトを書いている場合、きちんと処理しないと様々な場面で不具合が生じるため、問題が起きそうな所では一時的にEUCして処理する、なんて人もいます。

他にも、メール送信スクリプトでは件名や本文をJISに変換する必要があるし、アクセス解析スクリプトではキーワード解析時に文字変換が必要になります。
※検索エンジンがUnicodeである場合、jcode.plだけでは対処できないので、Jcode.pmやEncode.pmが必要です。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

>シフトJISでスクリプトを書いている場合、きちんと処理しないと様々な場面で不具合が生じるため、問題が起きそうな所では一時的にEUCして処理する

なるほど。そういうのがあるんですね。
しかしながら、自分が知りたいのは
おっしゃっているケースの具体的な形なんです。

例えば、この例であげてくださっている
「きちんと処理しないと不具合が生じる」
というのが、
どんなケースがあって、なぜそれが起こるのか、
そしてjcode.plを使うとそれが解決されるまでの
パターンを知りたいのです。

お手数になりますが、もしよろしければ
また補足して貰えますでしょうか。
よろしくお願いします。

お礼日時:2004/03/24 21:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!