[PHP-users 33316] Re: (手がかり有り)この文字化けの対処方法をご提案願います。

Tomoyuki Asakawa tom @ asakawa.ne.jp
2008年 2月 21日 (木) 15:48:39 JST


あさかわ

On 2008/02/21, at 13:46, sublime wrote:

>> こういう状況である私への、学習方法をご提案いただければ
>> 非常にありがたいです。何卒宜しくお願い致します。
>

たぶん、設定とか以前に、意味を、理解する必要があるのではない 
でしょうか。

ただ、意味はわからなくても、結論としては。

漢字コードは、矛盾なく正しく、設定するです。

[PHP-users 33314]で

> mbstring.internal_encoding = EUC-JP

で、解決したということですすが。

[PHP-users 33310] で

 >またDBに接続後は、SET NAMES UTF-8として
 >charactersetも指定しています。(元々)

書いてあることからすると。

DBとの入出力を、UTF-8にしてるにも関わらず。
PHPの内部コードを、EUC-JP
にしてるわけで

明らかに、設定に矛盾があります。

なので、やはり、たまたま、解決した様に見えてるだけです。

> mbstring.internal_encoding = EUC-JP
ならば、
SET NAMESも同じである必要があります。

なぜならば、mysqlのSET NAMESは
クライアント(この場合PHP)の、期待するコード(この場合 
EUC-JP)を指定するためのものです。
するとMYSQLは、DBサーバがわのコードを、クライアン 
トに対してSET NAMESで指定されたコードに
変換して送受信します。

ただ、PHPのセキュリティリスクの問題があるので
SET NAMESは使用しないで、
mysql_set_charset()
で、指定するべき「らしい」です。










PHP-users メーリングリストの案内