情况描述:
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-8 (
chrome 中“设置——显示高级设置——自定义字体——编码”);
1.4. 修改已创建的数据库排序规则为
utf8_general_ci ,这一步可以在
phpmyadmin 下操作,需要将表以及字段的排列规则都改过来,通过结构选项卡查看排列规则;

1.5. 修改
MySQL 的默认字符集;
打开
MySQL 的
my.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 ;

为确保万无一失,在
php 中进行数据库操作时,请使用
SET NAMES ‘utf8′ ; 语句,在连接之后使用
$mysqli->query("set names 'utf8'");
MARK