Re: [請益] 網頁改UTF8 MYSQL改UTF8卻亂碼 (附圖)

看板PHP作者 (Algorithms)時間15年前 (2010/10/10 12:19), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串4/6 (看更多)
※ 引述《kingmin (高手)》之銘言: : ※ 引述《buganini (霸格尼尼)》之銘言: : : 如果你用phpmyadmin看資料庫內容都正確的話 : : 沒意外的話應該本來就是囉 : : 這樣看起來是資料庫存UTF-8, 網頁用Big5

10/09 23:45,
你確定不是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

10/10 16:29, , 1F
AB都是送爽的 server side想送big5還是可以收 最後有*
10/10 16:29, 1F

10/10 20:45, , 2F
資料源是 big5的,我一直以為他會自己變成 utf8。
10/10 20:45, 2F

10/10 20:46, , 3F
原來還要自己做轉換編碼的動作......了解 我在試試
10/10 20:46, 3F

10/10 23:22, , 4F
其實你set names big5之後mysql就會幫你轉
10/10 23:22, 4F

10/10 23:23, , 5F
除非你有其他utf-8資料會出現在query裡面 不然這樣就好了
10/10 23:23, 5F

10/11 22:43, , 6F
我現在從CURL抓到的資料都要big5轉utf8才能存入MYSQL
10/11 22:43, 6F

10/11 22:44, , 7F
這樣就沒有錯了 不過有些許工蓋 不知要怎麼解決???
10/11 22:44, 7F
文章代碼(AID): #1CiJxJq5 (PHP)
文章代碼(AID): #1CiJxJq5 (PHP)