引用 | 编辑
笑笑
2008-06-01 11:01 |
楼主
|
||
x0
试了好几天的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.tw/plog/post/3/847 x0
|