[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 メーリングリストの案内