※ 引述《foxzgerald (Algorithms)》之銘言:
: ※ 引述《foxzgerald (Algorithms)》之銘言:
: : [資料源(其他網頁)] ==> [PHP程式(CurlRequest)] ==> [資料庫(mysql_insert)]
: : 你之前幾篇文章檢查的好像只有後面兩個階段,也就是只有確認自己寫的 PHP是用
: : UTF-8 編碼、與資料庫間的通訊用 UTF-8、以及與資料庫儲存資料的格式是UTF-8
: : 如果這部分你確定都是正確的,那兇手可能在前一站:資料源的擷取
: : 如果資料源是 big5 之類的,往後的流程中除非你有明確轉換編碼,不然那些資料
: : 不會自己變成 utf8。我想你可以試試看先判定資料源是否是為 utf8,如果不是的
: : 話,可以用 iconv 之類的涵式轉換編碼
: : good luck
: 推 kingmin:我現在從CURL抓到的資料都要big5轉utf8才能存入MYSQL 10/11 22:43
: → kingmin:這樣就沒有錯了 不過有些許工蓋 不知要怎麼解決??? 10/11 22:44
: ^^..功
: google 許功蓋 應該會找到一海票 solution :P
: x x x
: 除了 iconv 之外,我滿喜歡用 PHP Big5 Function ( http://tinyurl.com/2e3dnku )
: 以前曾碰過一些 iconv 無法順利轉換的案例,後來用 big5 function 都能圓滿解決,
: 不知道現在 iconv 有沒有改善;若你也發現它仍問題,可以試著用 big5 function。
: 至於 big5 function 的使用方法,可以看 readme.html 或是直接看 php 的內容,
: 應該不難學。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.2
iconv 其時是一個很不負責任的涵數,
因為它遇到轉不過去的字就會停住不繼續轉了,
除非您自己動手改寫,
不然還是推薦轉碼使用mbstring編碼模組,
如mb_convert_encoding() 來轉碼,
省事又方便。
題外話...
前台後台基本上全面使用utf8,可避免許蓋功的問題,
編碼的問題統一處理總比轉碼輕鬆一些。