正确设定mysql的字符集编码的探索---需要向数据库中插入中文数据
2011-06-14 22:57
489 查看
一。数据库安装时设定的字符集编码是utf8
1.当前的字符集编码是:
Server characterset: utf8
Db characterset: utf8
Client characterset: Latin1
Conn. characterset: Latin1
(1)下创建数据库
插入中文数据时,能够执行操作,但是显示的是乱码
(2)修改字符集编码,变成:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据时,能够执行操作,且数据显示正常
(3)修改字符集编码,变成:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行,报错如:IIncorrect string value :'/xB9/xA4/Xbe/XDF'for colunmn'sort_name'at row 1
二。安装数据库时是Latin1
1.当前字符集编码:
Server characterset: Latin1
Db characterset: Latin1
Client characterset: Latin1
Conn. characterset: Latin1
(1)下创建数据库
插入中文数据时,能够执行操作,但是显示的是乱码
(2)修改字符集编码为utf8
Server characterset: Latin1
Db characterset: Latin1
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
(3)修改字符集编码为gbk
Server characterset: Latin1
Db characterset: Latin1
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作不能执行
(4)在安装数据库时设定字符集编码为utf8,并把当前数据库的字符集编码也设为utf8
1)当前字符集编码为utf8:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
2)当前字符集编码为gbk:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作不能执行
3)当前字符集编码为Latin1:
Server characterset: utf8
Db characterset: utf8
Client characterset: Latin1
Conn. characterset: Latin1
插入中文数据时,能够执行操作,但是显示的是乱码
结论:当在安装mysql数据库时设定的字符集编码是Latin1,不支持中文,在这样的环境下创建的数据库,无论怎样修改字符集都不能正常插入中文数据。并且当把数据库移到安装数据库时就设定的字符集是utf8的数据库环境下,设置字符集为utf8或则gbk时,插入中文数据,操作直接就不能执行。
所以,想在数据库中插入中文数据,安装数据库时就必须设定字符集是支持中文的。
三。在安装数据库时就设定字符集编码为utf8的环境下
1.当前字符集编码为:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
下创建数据库
(1)插入中文数据,操作不能成功
(2)修改字符集编码为:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,显示正常
(3)安装数据库时就设定字符集编码为gbk
1)当前字符集编码
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作正常,显示正常
2)当前字符集编码为utf8
Server characterset: gbk
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
四。在安装数据库时就设定字符集编码为gbk的环境下
1.当前 字符集编码是:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
下创建数据
(1) 插入中文数据,操作能执行,并能正常显示
(2) 当前字符集编码为utf8
Server characterset: gbk
Db characterset: gbk
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
结论:要想能向数据库正常插入中文,必须满足以下条件:
<!--[if !supportLists]-->(1) <!--[endif]-->安装数据库时,要把字符集设定为能支持中文的gbk或则utf8
<!--[if !supportLists]-->(2) <!--[endif]-->把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk
其中,设定字符集编码的指令为:set names ‘charactername’
查看字符集编码的指令为:status
至于为什么吗要这样做,我也讲不出原因!
按理说,只要character_set_client、character_set_results、 character_set_connection的编码字符集的设置一样就行了,可为什么用SET NAMES 'charset_name'把他们设置为utf8就不能插入中文,而设置为gbk就能插入中文?
对于这个问题,我实在 搞不清楚,得去查些资料才行!
1.当前的字符集编码是:
Server characterset: utf8
Db characterset: utf8
Client characterset: Latin1
Conn. characterset: Latin1
(1)下创建数据库
插入中文数据时,能够执行操作,但是显示的是乱码
(2)修改字符集编码,变成:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据时,能够执行操作,且数据显示正常
(3)修改字符集编码,变成:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行,报错如:IIncorrect string value :'/xB9/xA4/Xbe/XDF'for colunmn'sort_name'at row 1
二。安装数据库时是Latin1
1.当前字符集编码:
Server characterset: Latin1
Db characterset: Latin1
Client characterset: Latin1
Conn. characterset: Latin1
(1)下创建数据库
插入中文数据时,能够执行操作,但是显示的是乱码
(2)修改字符集编码为utf8
Server characterset: Latin1
Db characterset: Latin1
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
(3)修改字符集编码为gbk
Server characterset: Latin1
Db characterset: Latin1
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作不能执行
(4)在安装数据库时设定字符集编码为utf8,并把当前数据库的字符集编码也设为utf8
1)当前字符集编码为utf8:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
2)当前字符集编码为gbk:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作不能执行
3)当前字符集编码为Latin1:
Server characterset: utf8
Db characterset: utf8
Client characterset: Latin1
Conn. characterset: Latin1
插入中文数据时,能够执行操作,但是显示的是乱码
结论:当在安装mysql数据库时设定的字符集编码是Latin1,不支持中文,在这样的环境下创建的数据库,无论怎样修改字符集都不能正常插入中文数据。并且当把数据库移到安装数据库时就设定的字符集是utf8的数据库环境下,设置字符集为utf8或则gbk时,插入中文数据,操作直接就不能执行。
所以,想在数据库中插入中文数据,安装数据库时就必须设定字符集是支持中文的。
三。在安装数据库时就设定字符集编码为utf8的环境下
1.当前字符集编码为:
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
下创建数据库
(1)插入中文数据,操作不能成功
(2)修改字符集编码为:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,显示正常
(3)安装数据库时就设定字符集编码为gbk
1)当前字符集编码
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,操作正常,显示正常
2)当前字符集编码为utf8
Server characterset: gbk
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
四。在安装数据库时就设定字符集编码为gbk的环境下
1.当前 字符集编码是:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
下创建数据
(1) 插入中文数据,操作能执行,并能正常显示
(2) 当前字符集编码为utf8
Server characterset: gbk
Db characterset: gbk
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操作不能执行
结论:要想能向数据库正常插入中文,必须满足以下条件:
<!--[if !supportLists]-->(1) <!--[endif]-->安装数据库时,要把字符集设定为能支持中文的gbk或则utf8
<!--[if !supportLists]-->(2) <!--[endif]-->把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk
其中,设定字符集编码的指令为:set names ‘charactername’
查看字符集编码的指令为:status
至于为什么吗要这样做,我也讲不出原因!
按理说,只要character_set_client、character_set_results、 character_set_connection的编码字符集的设置一样就行了,可为什么用SET NAMES 'charset_name'把他们设置为utf8就不能插入中文,而设置为gbk就能插入中文?
对于这个问题,我实在 搞不清楚,得去查些资料才行!
相关文章推荐
- mysql 数据编码问题 插入含有中文出现自己串问题
- 【ITOO技术篇】——MySQL插入中文数据,存入数据库乱码的问题
- spring 插入mysql数据的中文编码问题
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)
- 连接mysql server 5.0 数据库的乱码问题,utf8编码,中文正确显示
- 修改mysql默认字符集的方法(插入数据库数据乱码)
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- mysql客户端插入中文数据出现的编码格式问题
- Mysql创建数据库的排序规则 中文 选择哪种编码
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题,亲测可用)
- mysql将数据表插入到另一个数据库的表
- MySQL的数据库无法插入中文是怎么回事?
- MySQL插入数据时,中文乱码问题解决方法
- MySQL 数据库怎样把一个表的数据插入到另一个表
- 使用DOS命令无法插入中文数据到数据库的问题
- .java web (hibernate MySQL 无法正确插入数据)
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- Mysql登录中文名称+密码不成功,原因是数据库编码不是utf8
- JDBC连接MySQL 插入中文数据的乱码问题