BLOG ENTRY

xamppでデータベース(MySQL)からPHPで取得した値が文字化け

php_howtodo

xamppでMySQLからPHPで値を取得すると
文字コードがすべてASCIIになってしまい、全角文字など2バイト文字が表示されずすべて「?」になってしまう症状が・・・。



さっそくいろんな方法を試してみる。



・PHPスクリプト内

1、取得した値に対して出力時に関数

mb_convert_encoding();

を使ってエンコードを行う。
⇒すべてASCIIのままにて文字化け。


2、DB接続スクリプトの次にクライアントの文字コードを設定する

mysql_query(“SETNAMES utf8″);

⇒すべてASCIIのままにて文字化け。


3、同様に

mysql_query(“SET CHARACTER SET utf8″);

⇒すべてASCIIのままにて文字化け。

・phpMyAdmin内

3、「MySQLの接続照合順序」を

「utf8_unicode_ci」

に変更してxamppを再起動。

⇒すべてASCIIのままにて文字化け。

・php.iniの設定

4、「mbstring」の設定項目にて

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8

にしてコメントアウトを解除して、apacheを再起動。

⇒すべてASCIIのままにて文字化け。

・MySQLの設定

5、my.cnfの[mysqld] 設定を以下に変更。

character-set-server = utf8
collation-server = utf8_general_ci

にして、以下の1行をその下に追記。

skip-character-set-client-handshake

MySQLを再起動。
⇒全角文字はutf-8で表示!!
ふぅ~。ようやく2バイト文字が表示されました!

No related posts.

WRITE COMMENT


(required)


(required)


(required)

MENU

veltica creative of twitter