专业编程基础技术教程

网站首页 > 基础教程 正文

解决PHP的MySQL 的UTF-8问题 php,mysql

ccvgpt 2024-10-12 13:32:10 基础教程 9 ℃

这里有一个你应该做的操作列表,以便让PHP + MySQL使用UTF-8:

解决PHP的MySQL 的UTF-8问题 php,mysql

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'");

Tags:

最近发表
标签列表