作者thustow (~碗粿~)
看板PHP
标题[请益] phpMyadmin资料乱码问题
时间Wed May 9 20:02:19 2012
好吧我知道这已经是万年问题了,但是尽管我爬了四个小时以上的文,
还是发生了一些无法理解的事情,只好烦请各位板友帮忙解答一下
我用的php版本是5.3.2,phpMyAdmin版本是3.5
目前的问题是:
中文资料从form透过php输入到mysql时,phpMyAdmin和MySQL终端机介面
的中文资料栏位都会显示乱码。而透过php取出资料时,输出正常。
如果直接透过phpMyAdmin或终端机直接打insert into指令,则中文能在介面上正常显示
但透过php输出资料则为乱码。
已经检查过
1. html有加下列这一行
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2. MySQL的连线方式是经过\s检查为
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
3.MySQL中文栏位都有设定成utf8_general_ci
以上设定过後检查phpMyAdmin仍然一样
故在负责insert资料的php加上mysql_query("set names utf8");
发现结果仍然一样。
另外发现如果在负责select输出资料的php加上mysql_query("set names utf8");
form所输入的中文资料在网页输出会变乱码。(资料库仍为乱码)
如果透过phpMyAdmin直接key in资料库的中文在网页输出会变正常。
目前小弟怀疑是php编码的问题,故用mb_internal_encoding()函式查看编码发现是
ISO-8859-1,也就是Latin1。加上mb_internal_encoding("utf-8")结果仍然一样。
麻烦各位版友解惑,该如何才能让form输入中文,phpMyAdmin、网页输出也是中文不乱码
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.92.101
1F:→ gpmm:form 所在的档案格式有存成 utf-8 吗? 05/09 20:57
2F:→ thustow:有,无bom的 05/09 21:09
3F:→ noxhsu:有确认过myadmin的网页编码?直接从mysql做dump看看 05/09 22:34
4F:→ noxhsu:从资料库直接倒出来的资料回头追两边的网站编码 05/09 22:36
5F:→ Canboo:不负责言论是看一下那个PHP"档案"的编码 05/10 00:06
6F:→ Canboo:现在才看到1.2楼的推文,上句当我没说过 05/10 00:07
感谢楼上们所提供的建议,经过一番良久的测试之後
目前问题已经解决,但是原理还是没有搞清楚
测试後发现,如果使用mysqli_connect(主机,使用者,密码,资料库);
那麽set names utf8这句话会自动失效,不管你set names什麽编码都一样
但是如果你用mysql_connect,之後再select db,那麽set names utf8就有效且必要,
因为如果不加上这一句,那麽资料库内、就会乱码
可是经由show variables like "character_set%"查询我的MySQL设定
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+----------------------------+
早就是utf8,
我想请问为什麽它预设不会以utf8方式做连线,而还要自己手动设定set names utf8 ?
※ 编辑: thustow 来自: 140.113.92.108 (05/11 00:05)
※ 编辑: thustow 来自: 140.113.92.108 (05/11 00:06)