作者foxzgerald (Algorithms)
看板PHP
标题Re: [请益] 网页改UTF8 MYSQL改UTF8却乱码 (附图)
时间Sun Oct 10 12:19:28 2010
※ 引述《kingmin (高手)》之铭言:
: ※ 引述《buganini (霸格尼尼)》之铭言:
: : 如果你用phpmyadmin看资料库内容都正确的话
: : 没意外的话应该本来就是罗
: : 这样看起来是资料库存UTF-8, 网页用Big5
1F:推 SmallBeeWayn:你确定不是CurlRequest的问题?10/09 23:45
: 这CURL应该跟网路上找的道程式码的差不多
: class CurlRequest{
: // .... 略 ....
: "Accept: */*",
: "Accept-Language: ru-ru,ru;q=0.7,en-us;q=0.5,en;q=0.3",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^....
(A)
: "Accept-Charset: UTF-8,windows-1251;q=0.7,*;q=0.7",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ....
(B)
: "Keep-Alive: 300");
我的看法和 S大一样,如果资料库设定都没问题,
那可能资料源(CurlRequest)有问题。
(A) 的部分可能跟目前的问题比较无关,我只是好奇为啥你要设定 ru (俄文?)
(B) 的部分关联性大一点,curl我不熟但看到这行我有个疑问:你确定抓到的资料是
UTF-8 的编码而不是 Big5 的编码? 非 UTF-8 的资料不会被过滤掉?
x x x
你写的程式在资料处理流程上应该可以分成三个阶段
[资料源(其他网页)] ==> [PHP程式(CurlRequest)] ==> [资料库(mysql_insert)]
你之前几篇文章检查的好像只有後面两个阶段,也就是只有确认自己写的 PHP是用
UTF-8 编码、与资料库间的通讯用 UTF-8、以及与资料库储存资料的格式是UTF-8
如果这部分你确定都是正确的,那凶手可能在前一站:资料源的撷取
如果资料源是 big5 之类的,往後的流程中除非你有明确转换编码,不然那些资料
不会自己变成 utf8。我想你可以试试看先判定资料源是否是为 utf8,如果不是的
话,可以用 iconv 之类的涵式转换编码
good luck
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.255.7.86
2F:→ buganini:AB都是送爽的 server side想送big5还是可以收 最後有* 10/10 16:29
3F:→ kingmin:资料源是 big5的,我一直以为他会自己变成 utf8。 10/10 20:45
4F:→ kingmin:原来还要自己做转换编码的动作......了解 我在试试 10/10 20:46
5F:推 buganini:其实你set names big5之後mysql就会帮你转 10/10 23:22
6F:→ buganini:除非你有其他utf-8资料会出现在query里面 不然这样就好了 10/10 23:23
7F:推 kingmin:我现在从CURL抓到的资料都要big5转utf8才能存入MYSQL 10/11 22:43
8F:→ kingmin:这样就没有错了 不过有些许工盖 不知要怎麽解决??? 10/11 22:44