Xampp Mysql 乱码
看了不少文章,大多数只是讲怎么操作,不涉及原理,很是失望,就像无头苍蝇一样乱撞。
首先看下php+Mysql+Apache环境下涉及到的字符集:
介绍数据库内部存储字符集:
“数据库内部存储字符集”是指数据在数据库中以何种编码进行存储。包括三种粒度的字符集:服务器字符集、数据库字符集和数据库表字符集。这三种字符集的优先级依次升高,数据库表字符集的优先级大于数据库字符集大于服务器字符集。
character_set_server/default_character_set指的是服务器字符集;character_set_database指的是数据库字符集;character_set_table指的是数据库表字符集。
介绍客户端请求字符集和请求结果字符集:
character_set_client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。
character_set_results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。
在客户端,如果没有定义character_set_results,则采用character_set_client字符集作为默认的字符集。所以只需要设置character_set_client字符集。
character_set_connection
The character set used for literals that do not have a character set introducer and for number-to-string conversion.
Mysql字符集转换过程:
SET NAMES ‘charset_name‘ [COLLATE ‘collation_name‘]:
在Php代码中加入:mysql_query("SET NAMES UTF8");
参考文献:
http://www.laruence.com/2008/01/05/12.html
http://dev.mysql.com/doc/refman/5.5/en/charset.html
http://jingyan.baidu.com/article/48a42057c069d7a9242504fb.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。