看板 PHP 關於我們 聯絡資訊
有時候,可能會遇到舊系統當初在設計的時候,系統並無特別指定編碼 所以在資料庫存檔時,是採用latin1編碼存檔,結果在phpmyadmin 匯出的時候,所得到的資料是亂碼。 經過今天的實驗,以下可將亂碼資料轉回成正確編碼狀態: <?php //讀取檔案 $content = file_get_contents("db.sql"); //將文字從utf8轉成latin1編碼(當初在phpmyadmin介面是指定utf8瀏覽) $content = mb_convert_encoding($content,'latin1','utf8'); //輸出 echo $content; ?> 以上重點在於要把phpmyadmin當時在匯出的時候,當時所採用的編碼給轉回去latin1 嗯...後來我都用utf8編碼,所以都沒再遇到這樣的問題, 是剛好今天在轉舊系統的資料,碰巧又遇到編碼上的問題, 好奇心的驅使下來解決六年前我不會的問題... (以前我不會解決 Orz) 如果各位先進早就都會了,就當我野人獻曝吧 ~ T_T -- 從一代一代的問候就看的出來 老手對新手的照顧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.212.222
kylekai:這樣轉..理論上會出錯得... 10/27 16:27
cjoe:big5(WEB)->latin1(DB)->utf8(phpmyadmin) 10/27 16:29
cjoe:我今天是這樣解決問題的 T_T 10/27 16:29
buganini:是不會出錯 但也不算正確 只是latin1剛好包含1byte中 10/28 10:43
buganini:所有可能的value 當byte string用而已 10/28 10:43
buganini:不過那是舊系統的問題.. 10/28 10:44