wamp环境PHP插入MySQL汉字中文乱码问题

情况描述:verchar字段插入INSERT中文字符,显示出来变成一个个的问号,在phpmyadmin下操作插入中文直接报错。

解决方法如下:

1. 检查字符集设置;

1.1. 涉及到的html代码的文件中须包含;

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

1.2. 涉及到php数据库操作的需设置编码;

$mysqli->set_charset('utf8');
//$mysqli为mysqli对象
mysql_query("SET NAMES UTF8");
//单条语句,放在连接语句后面

1.3. 测试用的浏览器的编码设置为UTF-8chrome中“设置——显示高级设置——自定义字体——编码”);
1.4. 修改已创建的数据库排序规则为utf8_general_ci,这一步可以在phpmyadmin下操作,需要将表以及字段的排列规则都改过来,通过结构选项卡查看排列规则;
phpmyadmin修改排列规则
1.5. 修改MySQL的默认字符集;
打开MySQLmy.ini文件:
[client]添加

default-character-set=utf8

[wampmysqld]下添加

character_set_server=utf8
init_connect='SET NAMES utf8'

如果是5.5版本的MySQL可能还需要在[mysql]下添加

default-character-set=utf8

1.6. 使用

SHOW VARIABLES LIKE'character%';

查看字符集设置是否都已经修改为utf8
设置mysql相关字符集

为确保万无一失,在php中进行数据库操作时,请使用SET NAMES ‘utf8′; 语句,在连接之后使用

$mysqli->query("set names 'utf8'");

一条评论

评论已关闭。