• ベストアンサー

ApacheにてHTML・PHPファイルが文字化けします

現在、業務の関係でHTML・PHPファイルをブラウザで表示させているのですが、あるファイル(HTML・PHP両方とも)のみ文字化けをおこしてしまうのです。 OS:TurboLinuxServer6.1 Webサーバ:Apache1.3.26 ブラウザ:Netscape4 PHP:PHP3.0.18 HTML・PHPファイルの上には「charset=Shift_JIS」と、すべてのファイルに記述しています。 PHPのiniファイル内の「i18~」もShift_JISに統一しています。 Apacheのhttpd.confの設定も行なったのですが、効果がありませんでした。 ちなみに、HTML・PHPファイルはWin→Linuxにコピーするとき、秀丸でファイル形式を「EUC(改行=lf)」で保存しました。(こうしないと、改行に変な文字がついてしまうので) gooで検索をかけたところ、ファイルのパーティションを705にかえる方法がありましたが、それも関係あるのでしょうか? なにか、よきアドバイスがあればお願いいたします。

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.2

どノーマルのphp-3.0.18ではi18n機能は付いていません。 php-3.0.18-i18n-ja-3がVersion3系の最新です。 これ(に相当するバージョンの物)を使えばphpのスクリプト内の記述に関して「スクリプト エンコーディング」を自動判別可能です。 また、phpのスクリプトをShift_JISで記述すると、何かと問題が発生するようですね。 たとえば、[\]にまつわる問題とか、、、 特殊な理由がない限り、基本的にphpのスクリプトはEUC-JPで書くべきです。

参考URL:
http://www.php.gr.jp/,http://jp2.php.net/
bokeseizin
質問者

お礼

No.1の方のお礼でも書きましたが原因が判明しました。 どうやらPHPのiniファイルの名前を「php.ini」→「php3.ini」にしたら、文字化けすることなく正常に動かすことができました。 ちなみに文字コードをEUCにしても問題なく動作することができました。 こんな単純ミスのためにご回答いただきまして本当にありごとうございました。 これからはちゃんと自分で確認して原因を追求していきたいと思います。

bokeseizin
質問者

補足

回答していただきありがとうございます。 PHPのバージョンを会社で調べましたら、php-3.0.18-i18n-ja-3でしたので、私の設定がおかしいのかもしれません。 No.1にもかきましたがShift_JISにあわせないといけないので、とりあえずShift_JISにファイル変換して試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

EUCで保存して、Shift-JISで見れば、文字化けするのは当然ですよね? ちっとも不思議じゃありません。 EUCでアップするなら、「charset=x_EUC」にするか、何も指定しないかですね。

bokeseizin
質問者

お礼

原因が判明しました。どうやらPHPのiniファイルの名前を「php.ini」→「php3.ini」にしたら、文字化けすることなく正常に動かすことができました。 ちなみに文字コードをEUCにしても問題なく動作することができました。 こんな単純ミスのためにご回答いただきまして本当にありごとうございました。 これからはちゃんと自分で確認して原因を追求していきたいと思います。

bokeseizin
質問者

補足

回答していただいてありがとうございます。 やはりEUCで保存するとだめですか・・・ お客様の環境に合わせなければいけないので(Shift_JISに統一されています)Shift_JISにファイル変換して試してみます。

すると、全ての回答が全文表示されます。

関連するQ&A