[PHP-users 4987] Re: 文字化け

Masashi Ohba php-users@php.gr.jp
Fri, 25 Jan 2002 17:59:28 +0900


大場です。

Shawn Gray wrote;

>PHP Version 4.0.4pl1

このバージョンのPHP4がShift_JISを扱えるのかどうかは
追加モジュールに依存します。
しかし、マルチバイト関数を追加したかどうかが
書かれていないので、きっと誰も分かりません。


>METAタグはちゃんと入ってます:
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
>
>文字の中身はHTML FORMで入れていまして、
>QKC(Quick Kanji Converter)というソフトでS-JIS、JIS、EUC等に内容を変換して
>入れ直しましたが、まだ解決は出来ません。

ソースをS-JIS、JISにしたらますますおかしくなりませんか?
PHP4系では、ソースはEUCじゃないとだめでしょう。

マルチバイト関数を使っていないのなら
「charset=EUC-JP」にすればおそらく化けないとおもいます。
SJISの出力が出来ないPHP4で「charset=Shift_JIS」では
EUCの出力なのにSJISと解釈させるわけですから、文字化けします。
マルチバイト関数を使っているのに化けるなら、
php.iniの設定がSJISで出力できる様になっていないのでしょう。

どっちの場合でも実際の出力がEUCなのに
「charset=Shift_JIS」と書いてあるのが
文字化けの原因なのではないですか?

>http://www.php.gr.jp/php/php4/ で4.0.6は大丈夫だと見ました。バージョンを
>アップするか、ダウンするか、パッチを付けるか。。。
>
>何かアドバイスがあるのでしょうか?

自分でインストールできるなら4.0.6は既に古いバージョンですので
4.1.1を、マルチバイト関数を有効にしてコンパイルし、php.iniを
ちゃんと設定する

インストールが面倒だったら、SJISのことは一切考えないで
ソースはEUCで書く。
EUCで出力する。
charsetはEUC-JPにする。
これなら多分化けません。

------------------------------------------------------------
大場正志(Masashi Ohba)
E-Mail  ohba@intelight.co.jp
(株) インテライト
http://www.intelight.co.jp
------------------------------------------------------------