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

お世話になります。
PHPでのincludeファイルのことで考えています。

SJISコードで保存されたファイルを、EUCで書かれ
ましたPHPプログラムで、文字化けをせずに読み込む
事は可能なのでしょうか。

よろしくお願いいたします。

A 回答 (3件)

> おっしゃるとおりの「mb_convert_encoding」関数も試したのですけれど、


> includeファイルデータを読み込んだ変数には、うまくエンコードにならず、
> 理由はなんだろうと考えていました。
includeしたものを丸ごとmb_convert_encodingはできません。
単に内容を表示したいだけであれば
echo mb_convert_encoding (join (file ("File Path")), "EUC-JP", "SJIS");
が等価な結果を与えてくれます。
もしもファイルがPHPのプログラムで実行したいのだとすれば
include ("File Path");を行いincluide対象内の変数をinclude元のPHP内の変数と結合するよりも前かつ
echo,print等で出力する前までに全てmb_convert_encodingでエンコード変換しなければなりません。
面倒では有りますが可能です。
定義された変数を取得する関数が有るとは言え余り現実的ではなく先述の通りエンコードをそろえるのが最も簡単かつ安全な解決法なのです。
    • good
    • 0
この回答へのお礼

お返事をありがとうございます。
大変に参考になりました。
丁寧なお話をしていただきまして本当にありがとうございました。

お礼日時:2006/07/12 23:10

文字コードを合わせるのが一番良い方法です。



それでもどうしてもShift_JISでなければならないのであれば
$hoge = mb_convert_encoding ($hoge, "EUC-JP", "SJIS");
でエンコードを変換するのはどうでしょうか。
    • good
    • 0
この回答へのお礼

お返事をありがとうございます。
SJISなどの他の文字コードで作成をいたしました、ファイルの
読み込みを考えています。

おっしゃるとおりの「mb_convert_encoding」関数も試したのですけれど、
includeファイルデータを読み込んだ変数には、うまくエンコードにならず、
理由はなんだろうと考えていました。

もし、izayoimizukiさんが、この方法で、うまくいかれているのでしたら、よろしければ、
include文とmb_convert_encoding文をどのように書いておられるのか、教えてい
ただけましたらと思っております。

また、もし他に方法がありましたら、よろしくお願いいたします。

お礼日時:2006/07/12 20:45

普通はそういうことしないです


私ならばSJISで書かれたコードをEUCに変換して保存しなおしてから使いますね。

それともなにか特殊な理由でもあるのですか?
    • good
    • 0

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