SET NAMES gbk,CREATE utf8都用了,为什么还是无法插入记录-_-,谢谢指导
SET NAMES gbk,CREATE utf8都用了,为什么还是无法插入记录-_-,谢谢指导
SET NAMES gbk,CREATE utf8都用了,为什么还是无法插入记录-_-,谢谢指导
2016-12-08
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
1.MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。可以通过how create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。
2.表创建后,再修改字段的字符集设置不影响已经插入的数据.
所以才会出在查看字段时出现中文乱码.此时就只能用:set NAMES ‘utf8/gbk’(用字段插入是所用的相应代码,且这个命令行并不影响服务器端数据) 来查看中文内容
当数据库和数据表的编码不一样时,可能插入中文会出现乱码!排插步骤如下:(以utf8为例)
第一步:SHOW CREATE DATABASE XXXX;(我的是SHOW CREATE DATABASE test;)
查看你创建的 数据库是否是:DEFAULT CHARACTER SET utf8
第二步:show create table xxxx
查看你创建的数据表是否是 DEFAULT CHARSET=UTF8
第三步:
打开my.ini
在[client]节点下添加
default-character-set=utf8
在[mysqld]节点下添加
character-set-server=utf8
collation-server=utf8_general_ci 保存,重启mysql!
再 mysql> show variables like 'char%';查看是否是下面一样:
| character_set_client | utf8
| character_set_connection | utf8
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | /opt/mysql-cluster/share/mysql/charsets/
按以上步骤执行后,重新创建数据库imooc和表tdb_goods,就可以插入中文了!O(∩_∩)O~~
举报