推 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
→ buganini:AB都是送爽的 server side想送big5還是可以收 最後有* 10/10 16:29
→ kingmin:資料源是 big5的,我一直以為他會自己變成 utf8。 10/10 20:45
→ kingmin:原來還要自己做轉換編碼的動作......了解 我在試試 10/10 20:46
推 buganini:其實你set names big5之後mysql就會幫你轉 10/10 23:22
→ buganini:除非你有其他utf-8資料會出現在query裡面 不然這樣就好了 10/10 23:23
推 kingmin:我現在從CURL抓到的資料都要big5轉utf8才能存入MYSQL 10/11 22:43
→ kingmin:這樣就沒有錯了 不過有些許工蓋 不知要怎麼解決??? 10/11 22:44