作者rackyrose (RackyRose)
看板PHP
标题Re: [心得] 网页乱码问题解决法
时间Tue Oct 2 00:18:40 2007
※ 引述《towalking (不需要脚踏车的鱼)》之铭言:
: ※ 引述《ottokang (猫猫的大玩偶)》之铭言:
: : 刚刚上来整理版面发现乱码问题越来越多
: : 很多PHP的初学者常常遇到乱码的问题而感到困扰,这边我就整理一下解决办法
: : 如果用了之後还有遇到再上来版上问
: : 首先,乱码的问题几乎都来自於古老的Big5编码,因此要有个观念
: : 若非必要
: : 不要用Big5编码!不要用Big5编码!不要用Big5编码!
: : 请爱用UTF-8编码!请爱用UTF-8编码!请爱用UTF-8编码!
: : 使用编码就像一堆人说话一样,如果一个人讲了火星话,自然其他地球人听不懂
: : 所以请你先确定以下的环节有没有做好:
: : ◎ 资料库编码设定UTF-8了吗?
: : ◎ PHP程式档案用UTF-8编码了吗?有没有不小心用到BOM?
: ^^^这是什麽?
: : ◎ HTML有用UTF-8吗?有没有在head的地方设定以下的Meta Tag?
: : <meta http-equiv=content-type content="text/html; charset=utf-8" />
: : 以上都做到的话,应该可以解决99%的编码问题,剩下的再到版上发问吧!
: 感谢版主整理,
: 看过版友给的方法,
: 我在执行 sql 指令前,加上 mysql_query("SET NAMES 'utf8'");
: 的确解决了中文资料写进资料库,在资料库介面显示乱码的问题。
: 我一开始请教朋友怎麽解决这个问题,
: 他只告诉我 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
: 他写的程式码并没有加上 mysql_query("SET NAMES 'utf8'"); 也不会显示乱码,
: 请问为什麽会有这样的差别呢?(我的不加就会乱码,他不加也不会有乱码 @@)
: 另外发现一个问题,
: 中文写进资料库不会有乱码了,
: 但是从资料库读出就会出现乱码,为什麽有这种情况发生啊?
: 资料库是以 utf8_general_ci 编码,
: php 程式页一开头有加上
: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">,
: 谢谢版友回答了!
首先,你朋友没有使用 SET NAMES 就没有乱码,那应该是他刚好安装好的版本就是for
utf-8 的,所以不需要做任何的设定
至於你读出db时产生乱码,建议你SET NAMES 的动作,是加在 mysql_connect 之後
这样不管你是读出 or 写入就不用再进行SET NAMES 的动作
另外,要检查你的mysql所使用的预设编码及自定编码,最简单的方式是用phpMyAdmin
去看环境变数
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.90.201