wamp的初始编码设置及乱码原因
来源:互联网 发布:淘宝网店招的图片尺寸 编辑:程序博客网 时间:2024/05/21 13:58
乱码看你指的是哪里乱码
是数据库乱码还是页面乱码
主要是数据库以乱码的形式存储。
当通过查询语句返回数据到页面上时,又是正确的形式
终端页面用gbk是什么意思呢
这个工程编写代码时用gbk格式
wamp的初始编码设置
wamp的character_set_connection初始编码会这样设置是有原因的,因为在安装wamp时,我们选择了中文安装,所以character_set_connection、character_set_results设为了gbk,而wamp是法国人发明的,所以 character_set_database等都是Latin1(瑞典语)格式。
这个编码设置本身就会造成数据库乱码。
因为character_set_connection设为gbk,character_set_database却设为Latin1
也就是说,创建数据库时,默认数据库的编码格式是Latin1,而在zend studio上终端页面的编码格式默认是gbk。
从终端页面上传送过来的gbk格式的数据,经过连接层字符集,还是gbk格式,存储在Latin1格式的数据库上就会出现乱码,典型的乱码符号是¥。
那么改变数据库和终端页面的编码格式会怎么样呢?
把数据库的和终端页面的编码格式设为utf-8,从终端页面传送过来的utf-8格式的数据,经过连接层字符集,转为gbk格式,存储在utf-8格式的数据库上还是会出现乱码。
举其他例子
原文链接:http://www.jb51.net/article/30864.htm
向默认字符集为latin1的数据表插入utf8编码的数据前设置了连接字符集为utf8
– 插入时根据连接字符集设置,character_set_client、character_set_connection和character_set_results均为utf8;
– 插入数据将经过utf8=>utf8=>latin1的字符集转换,若原始数据中含有/u0000~/u00ff范围以外的Unicode字符,会因为无法在latin1字符集中表示而被转换为“?”(0x3F)符号,以后查询时不管连接字符集设置如何都无法恢复其内容了。
再举个例子
现在有一个utf8编码数据库,客户端连接使用GBK编码,connection使用默认的ISO8859-1(也就是mysql中的latin1),我们在客户端发送“中文”这个字符串,客户端将发送一串GBK格式的二进制码给connection层,connection层以ISO8859-1格式将这段二进制码发送给数据库,数据库将这段编码以utf8格式存储下来,我们将这个字段以utf8格式读取出来,肯定是得到乱码,也就是说中文数据在写入数据库时是以乱码形式存储的, 在同一个客户端进行查询操作时,做了一套和写入时相反的操作,错误的utf8格式二进制 码又被转换成正确的GBK码并正确显示出来
0 0
- wamp的初始编码设置及乱码原因
- vim编码格式及乱码产生原因
- Java项目乱码及设置Tomcat的UTF-8编码
- wamp设置mysql默认编码
- wamp设置mysql编码格式
- wamp设置mysql编码格式
- struts2中设置编码无法解决乱码的问题之原因之一
- PHP 连接 Mysql 数据库时设置编码方式(引起乱码的原因之一)
- java编码问题(中文乱码的原因)
- jsp中中文出现乱码的原因及解决方案(Java中Unicode、编码的理解)
- MySQL修改编码设置及乱码问题
- Mysql修改编码设置及乱码问题
- MySQL修改编码设置及乱码问题
- MySQL修改编码设置及乱码问题
- wamp 虚拟目录的设置
- wamp 虚拟目录的设置
- wamp 虚拟目录的设置
- wamp 虚拟目录的设置
- iOS中的地图大头针的添加
- 2016西电校赛网络赛 Problem A z1+z2
- 开源后端云Parse是什么?
- Bzoj3473:字符串:广义后缀自动机
- 三点...和两点加箭头..<的含义和区别
- wamp的初始编码设置及乱码原因
- 2015
- Java之LinkedList源码解读(JDK 1.8)
- HDU 3032 Nim or not Nim?(博弈 SG打表找规律)
- JDBC数据库应用开发
- java 权限修饰符
- typedef与typedef struct用法详解
- FFT在图像处理中的简单应用
- Linux学习系列-浅析EXT2文件系统