jump to navigation

PHP5+MySQL 文字化け対策 7月 20, 2009

Posted by hyhy in 技術情報.
Tags: ,
trackback

とあるサイトで、PHP5とMySQLで、文字コード「UTF-8」を使っているのですが、
文字化けが発生してしまい、その対策をまとめました。

【対策】
■初期設定
1)PHP.iniファイルの設定
mbstring.internal_encoding = UTF8
mbstring.http_output = UTF8
default_charset = “UTF8″

2)my.iniファイルの設定
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
skip-character-set-client-handshake
※skip~はMySQL 5.0.13-rc 以上のバージョンの場合のみ
※default-character-setって書いてあるところは全て「utf8」を設定

■HTML
<meta http-equiv=”content-type” content=”text/html;charset=utf-8″ >

■PHP
1)DB作成
[SQL] create database TESTDB default character set utf8

2)TABLE作成
[SQL]
create table testTable(
title VARCHAR(200),
) default character set utf8″;

3)データベース接続時に、
mysqli_set_charset($db, “utf8”);
をコール。

$db = mysqli_connect(“DBURI”,”USERNAME”,”PASSWORD”);
mysqli_set_charset($db, “utf8”);

※mysqli_set_charset()関数はPHP 5.2以降、MySQL 5.0.7以降でないと使えないようです。

4)レンタルサーバでphp.iniの設定ができない場合
<?
//php.ini 設定
ini_set(‘default_charset’, ‘utf-8’);
ini_set(‘mbstring.internal_encoding’, ‘utf-8’);
ini_set(‘mbstring.http_output’, ‘utf-8’);
>?
———————————————————————
<?
//それでもダメならphpの先頭でやればいいらしい
mb_language(“uni”);
mb_internal_encoding(“utf-8”);
mb_http_input(“auto”);
mb_http_output(“utf-8”);
>?
———————————————————————

広告
%d人のブロガーが「いいね」をつけました。