试了好几天的MySQL编码问题终于搞定。
在利用Google大神搜寻相关资料后,在
jjgod的"
A MySQL 4.1 Story"这篇文章中,终于看到关于MySQL编码的详细说明。
现在终于比较清楚MySQL的运作状况了。
我的结论:在MySQL 4.1中,不管是
资料库、
表、
栏位甚至
client 和
result的
连结状况都必需要
设定编码。
如果没设定的话,就会以
预设的编码(Latin1)来传递所有的结果。
因此假设资料库的编码已经设定为utf8了,但是在client和result的编码没有设定,存入资料库和资料库中取出的资料也会出现错误(因为经过两次latin1的编码,会把Big5或是utf8的中文字破坏掉。)
因此如果打算以utf8来做为所有的资料呈现和储存的话,可以在进行任何sel query之前加入:
SET character_set_client='utf8' //设定客户端编码
SET character_set_connection='utf8' 设定连结时所用编码
SET character_set_results='utf8' //设定传回资料时所用编码
这样的设定方式就等于:
SET NAMES 'utf8' 因此只要在写query之前加上 mysql_query("SET NAMES 'utf8'"); 在进行资料的储存和读取动作就会正常了,如此一来在phpMyAdmin中也可以看到正常的中文显示啰 ^_^ 转贴自 http://stu.dhjh.tp.edu....ost/3/847