提前:
拥有如下表格:
mysql> desc stu_info;
+———-+————-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+———-+————-+——+—–+———+—————-+
| stu_id | int(4) | NO | PRI | NULL | auto_increment |
| stu_name | varchar(20) | NO | UNI | NULL | |
| stu_sex | tinyint(1) | YES | | 1 | |
| stu_addr | varchar(40) | YES | | NULL | |
| stu_tel | varchar(20) | YES | | NULL | |
+———-+————-+——+—–+———+—————-+
问题:
如何插入汉字,能够在CMD中查看,及Web页面查看正常的显示。
实践:
1 CMD中插入数据,PHP代码查看Mysql数据
通过CMD命令打开Mysql后,设置编码为set names gbk;,然后再插入数据,在web获取时,设置编码格式为set names utf8。
代码如下:
打开cmd,连接上mysql数据库:
mysql> set names gbk;
mysql> insert into stu_info (stu_name,stu_sex,stu_addr,stu_tel) values ('乐',1,'翠微西路','8976901');
Query OK, 1 row affected (0.07 sec)
在页面中显示数据:
mysql_query('set names utf8');
$sql = "select * from stu_info";
$res = mysql_query($sql);
2 PHP代码方式插入,PHP代码查看数据
$sql = "insert into stu_info (stu_name,stu_sex,stu_addr,stu_tel) values ('乐',1,'翠微西路','8976901');";
mysql_query('set names utf8;');
$re = mysql_query($sql);
if($re){
echo '插入成功, 插入的索引id为'. mysql_insert_id().'<br>';
}else{
echo '插入失败<br>';
}
测试结果:
插入后都可以正常显示中文。
备注:
1 如果在CMD中显示为乱码,则使用set names gbk;设置成gbk后,再查看。
2 如果在Web中显示为乱码,则应该选择Web的显示编码格式为UTF-8。
3 还可以通过chcp 65001切换CMD页面的编码为UTF-8,再进行数据的插入。