mysql乱码问题相关资料汇集

mysql乱码问题相关资料汇集

ID:36447558

大小:48.00 KB

页数:8页

时间:2019-05-10

mysql乱码问题相关资料汇集_第1页
mysql乱码问题相关资料汇集_第2页
mysql乱码问题相关资料汇集_第3页
mysql乱码问题相关资料汇集_第4页
mysql乱码问题相关资料汇集_第5页
资源描述:

《mysql乱码问题相关资料汇集》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案MySQL乱码问题相关资料汇集character_set_results<-character_set_connection<-MYSQL<-character_set_client<-character_set_connection<-指定character_set_client关键的3个变量:character_set_client表示客户端发送过来的字符集character_set_connection客户端和数据库连接的中间字符集character_set_results表示发送到客户端的字符集解决方法:setnames'X

2、XX',实际上就是同时设置这3个变量为XXX。设置好这3个变量就能正确显示了。第一篇:AMySQL4.1Story下面要写的是一篇非常无聊的东西,充斥了大量各式各样的编码、转换、客户端、服务器端、连接……呃,我自己都不愿意去看它,但想一想,写下来还是有点意义的,原因有四:MySQL4.1对多语言的支持有了很大变化(这导致了问题的出现);尽管大部分的地方(包括个人使用和主机提供商),MySQL3仍然占主导地位;但MySQL4.1是MySQL官方推荐的数据库,已经有主机提供商开始提供并将会越来越多;许多PHP程序以MySQL作为默认的数据库管理

3、软件,但它们一般不区分MySQL4.1与4.1以下版本的区别,笼统地称“MySQL3.xx.xx以上版本”就满足安装需求了;因为latin1在许多地方(下边会详细描述具体是哪些地方)作为默认的字符集,成功的蒙蔽了许多PHP程序的开发者和用户,掩盖了在中文等语言环境下会出现的问题;简单的说,MySQL自身的变化和使用MySQL的PHP程序对此忽略,导致了问题的出现和复杂化,而由于大部分用户使用的是英文,使这种问题不被重视。这里提到的PHP程序,主要就WordPress而言。MySQL4.1字符集支持的原理MySQL4.1对于字符集的指定可以细

4、化到一台机器上安装的MySQL,其中的一个数据库,其中的一张表,其中的一栏,应该用什么字符集。但是,传统标准文档实用文案的Web程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?编译MySQL时,指定了一个默认的字符集,这个字符集是latin1;安装MySQL时,可以在配置文件(my.ini)中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;启动mysqld时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的;此时character_set_se

5、rver被设定为这个默认的字符集;当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;当选定了一个数据库时,character_set_database被设定为这个数据库默认的字符集;在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;这个字符集就是数据库中实际存储数据采用的字符集,mysqldump出来的内容就是这个字符集下的;简单的总

6、结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用latin1存储,不过我们如果安装MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把default_character_set设置为UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用UTF-8存储。当一个PHP程序与MySQL建立连接后,这个程序发送给MySQL的数据采用的是什么字符集?MySQL无从得知(它最多只能猜测),所以MySQL4.1要求客户端必须指定这个字符集,也就是character_set_client,MySQL

7、的怪异之处在于,得到的这个字符集并不立即转换为存储在数据库中的那个字符集,而是先转换为character_set_connection变量指定的一个字符集;这个connection层究竟有什么用我不大明白,但转换为character_set_connection的这个字符集之后,还要转换为数据库默认的字符集,也就是说要经过两次转换;当这个数据被输出时,又要由数据库默认的字符集转换为character_set_results指定的字符集。一个典型的环境典型的环境以我自己的电脑上安装的MySQL4.1为例,我自己的电脑上安装着Apache2,P

8、HP5和WordPress1.5.1.3,MySQL配置文件中指定了default_character_set为utf8。于是问题出现了:WordPress按照默认情况安装,所以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。