response.setContentType("text/html charset=GBK")
2.在安装数据库的地方找到my.ini并设置default-character-set=GBK有两处
3.String URL = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk"
4.服务器默认编码 web.xml中
查看字符集设置
mysql>show variables like 'collation_%'
mysql>show variables like 'character_set_%'
修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8
乱码原因:1、解码是与实际编码不一致(可修复)
2、传说过程中,编码不一致,导致字节丢失(不可修复)
utf-8-->转成gb2312,
utf-8容量大,gb2312容量小,
在转码的过程中,可能会丢失字节
客户端选择字符先发给连接器
连接器选择一种编码将期转换,临时存储
再次转换成,服务器需要的编码,并存储在服务器
////////////////////////////////////////////////
要想不乱码,需要指定客户端的编码,
让连接器不理解错误
这样就不会存入错误数据
往回取的时候,我们还要告诉连接器,如果你从服务器返回,应该给我转成什么格式
答:
一共是3和参数,客户端的发送的编码,
连接器使用的编码
获取的返回数据的编码
///告诉客户端我的是GBK
set character_set_client=gbk
////在告诉连接器使用utf8
set character_set_connection=utf8
////在告诉,如何返回值,请返回GBK的结果
set character_set_results=GBK
服务器 >=conntion>=client
在回头看:刚才,client,conn,results都是GBK
如果3者,都是GBK,可以简写成
set names gbk
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)