PHP+MySQLの文字化け対策

とりあえず、POST、GETで化けてるのか、MySQL側で化けているかをデバッグ等で確認。
*画面側、MySQL側ともにUTF-8の前提
★画面で文字化け
画面側の文字コードを確認

★画面でなくPOST、GET、MySQL側で化けている

①php.iniの設定
mbstring.language = Japanese
default_charset = "UTF-8"
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUR-JP,JIS,ASCII

②データベースの設定
collate(照合順序)や文字コードに注意

CREATE DATABASEの場合
CREATE DATABASE hoge_database
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLEの場合
CREATE TABLE hoge_database.hoge_table (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT '' NOT NULL, PRIMARY KEY (id)) COLLATE=utf8_general_ci;

★collate(照合順序)について
UTF-8の場合
a)utf8_general_ci
大文字-小文字を同一視
b)utf8_unicode_ci
大文字-小文字さらに半角-全角も同一視
c)utf8_bin
大文字・小文字完全一致にマッチする

[`evernote` not found]
Pocket
[`yahoo` not found]