看板 PHP 關於我們 聯絡資訊
※ 引述《kingmin (高手)》之銘言: : ※ 引述《buganini (霸格尼尼)》之銘言: : : 如果你用phpmyadmin看資料庫內容都正確的話 : : 沒意外的話應該本來就是囉 : : 這樣看起來是資料庫存UTF-8, 網頁用Big5
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