1、已建立的表无法插入中文字符串,原因是因为数据表中的内容为latin1字符集,latin1字符集为8bit,这说明它是不能表示中文的,故而当然会报改错
2、下面是具体问题,如果不修改name的字符集latin1,插入中文给name时,将会报错 Incorrect string value: '\xE7\x8E\x8B\xE6\x9E\x97'
3、一些关于查看和修改字符集的mysql知识:
查看mysql的字符集:show variables where Variable_name like '%char%';
查看某一个数据库字符集:show create database enterprises;(注:enterprises为数据库)
查看某一个数据表字符集:show create table employees;(注:employees为数据表)
修改mysql的字符集:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
修改数据库enterprises的字符集:
alter database enterprises character set utf8
修改数据表employees的字符集:
alter table employees character set utf8
修改字段的字符集
alter table employees change name name char(10) character set utf-8;
4.常见的更改数据库编码集的方法:
①进入mysql安装目录,打开my.ini文件,修改其中内容,然后重启MySQL服务。具体步骤不述
②运行show variables like ' character%'; 显示的内容是:
+--------------------------+-----------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 | //此处显示数据库依然是latin1编码
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 | // 此处是系统默认的
| character_sets_dir | E:\phpStudy\MySQL\share\charsets\ |
+--------------------------+-----------------------------------+
③修改默认编码有两种方法
1》在创建数据库时指定字符集create database yourDB CHARACTER SET gbk;
如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
修改MYSQL表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
修改字段的编码:ALTER TABLE `test` CHANGE `dd` VARCHAR( 45 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL
2》我是用的这种方法,因为我电脑上配置了php环境所以可以用这种方法:即运行一个php文件通过那个修改数据编码。你通过网页浏览该文件时填写一些数据就能修改了 文件下载地址http: // dl.vmall.com/c08ge26aop 文件直接解压到放php文件目录通过浏览器打开就行
通过上面这些步骤差不多就能显示出下面的内容了
在运行命令show variables like ' character% ';
+--------------------------+-----------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | E:\phpStudy\MySQL\share\charsets\ |
+--------------------------+-----------------------------------+
④万一还是不行。。。以为我也是一路试着来的,所以有些步骤可能我认为没起作用但却可能起了作用的有
1》mysql> set names gbk;
Query OK, 0 rows affected ( 0.00 sec)
它相当于下面的三句指令:
SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = gbk;
因此,这个方法也可以解决所有字符编码设置为gbk,而控制台显示中文乱码的问题。
⑤当然你也可以试试SET character_set_client = gbk; 即set这种命令来修改各个变量,但当时我不知道这个,也没试过。如果你上面的方法不行可以试试这个。