一。数据库安装时设定的字符集编码是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就能插入中文?
对于这个问题,我实在 搞不清楚,得去查些资料才行!
分享到:
相关推荐
最全的编码问题,乱码问题,uft-8,gbk
将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
本程序是自己做的 用C#2005 解决文件编码问题和文件显示乱码问题
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
URL汉字编码问题(及乱码解决)
qt乱码问题解决
字符与字节之间的转换是通过查码表完成的,将字符转成字节的过程称为编码,将字节转换成字符的过程称为解码,如果编码和解码使用的码表不一致,就会导致乱码问题。通过本案例来解决中文输出乱码问题。 使用...
编码问题一直困扰着开发人员,尤其在Java中更加明显,因为Java是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍Java中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别...
总结了在java web开发中遇到的种种编码问题,使乱码问题逐一清除
JAVA 乱码问题,JAVA 乱码问题,JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题JAVA 乱码问题
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
struts中文乱码问题解决详细步骤(两种方法)
Ajax中文乱码问题解决方案
今天突然提及的操作之php的JPgraph横坐标中文乱码问题,迫不及待 测试了一下, 尝试了几遍,都是乱码,好不容易没有乱码了,却报错。 解决JPgraph的横坐标显示,中文乱码问题,横坐标数组资源。
下面小编就为大家带来一篇读写json中文ASCII乱码问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
利用过滤器解决JavaWeb(JSP)的乱码问题
开发过程只能怪,遇到Oracle数据库US7ASCII字符集乱码问题
描述开发工具使用过程中,令人头痛的tera term中文乱码问题,如何快速定位解决
解决mysql乱码问题。主要是数据库查询出数据中文为问号???的问题。