这里有一个你应该做的操作列表,以便让PHP + MySQL使用UTF-8:
1、数据库:
CREATE DATABASE db_name CHARACTER SET utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COLLATE utf8_general_ci ;
或者如果已经创建数据库:
ALTER DATABASE db_name CHARACTER SET utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COLLATE utf8_general_ci ; CREATE TABLE table_name( ... ) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
或者如果已经创建了表格:
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
2、在php.ini中启用这一行:
extension=php_mbstring.dll
然后在相同的文件中配置以下内容:
mbstring.language = Neutral mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = none default_charset = UTF-8
3、使用下列php函数替代:
mail() -> mb_send_mail() strlen() -> mb_strlen() strpos() -> mb_strpos() strrpos() -> mb_strrpos() substr() -> mb_substr() strtolower() -> mb_strtolower() strtoupper() -> mb_strtoupper() substr_count() -> mb_substr_count() ereg() -> mb_ereg() eregi() -> mb_eregi() ereg_replace() -> mb_ereg_replace() eregi_replace() -> mb_eregi_replace() split() -> mb_split() htmlentities($var) -> htmlentities($var, ENT_QUOTES, 'UTF-8')
4、使用header和meta标签:
header('Content-type: text/html; charset=UTF-8') ; <meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
5、在数据库中的任何插入/更新之前,您应该执行以下操作:
mysql_query("SET NAMES 'utf8'");