作者sedc (大招出盡)
看板PHP
標題[請益] 奇怪的Big5跟utf8問題
時間Thu Nov 29 23:40:18 2007
之前寫的php網頁,在顯示上是用big-5 ,不過寫入的MYSQL資料庫
的儲存方式卻是UTF-8(汗) ,結果變成在MySQL Query Browser或
phpmyadmin中瀏覽資料時,看到的是亂碼,但是在網頁以BIG-5方式瀏覽時,那
些資料的部份是正常顯示的(這部份我的理解是,寫入的資料以BIG-5
的文字格式,存入了用UTF-8儲存的資料庫)。
現在我已經把網頁的原始碼部份都改好成utf-8編碼了,但資料庫中的部
份不曉得該怎麼轉換(軟體或是方法),所以如果瀏覽器用utf-8看網頁
時,網頁中寫死的文字會是正常的,但從資料庫中抓出來的部份則是亂碼
;反過來用big-5瀏覽的話,就是寫死的文字變亂碼、資料庫的部份是正
常的。想請問一下我該怎麼做才能解決這個問題呢? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.194.216
推 superGA:把資料庫裡面的資料全部轉編碼 轉成utf-8 11/30 00:37
→ superGA:再重新塞進資料庫 11/30 00:38
→ superGA:phpmyadmin設utf-8 只是你瀏覽的時候用utf8 步代表你存utf 11/30 00:40
→ superGA:依你的說法 你現在資料庫裡面應該是big5 11/30 00:42
→ superGA:所以你抓出來 用utf8看當然亂碼 反之 正常 11/30 00:42
推 sedc:所以意思是說,我現在要寫個網頁把所有資料庫裡的東西都先抓 11/30 00:52
→ sedc:出來用iconv轉好後再存回去囉? 11/30 00:52
→ LPH66:抓出來倒不必寫程式 phpMyAdmin有匯出&匯入的功能 11/30 01:02
→ LPH66:你甚至可以匯出後用轉碼程式轉好再匯入 11/30 01:03
推 sedc:我有用匯出再用CONVERTZ看過,但怎麼轉就是沒辦法在convertz 11/30 01:04
→ sedc:的預覽中正確瀏覽那些資料,所以搞不太懂到底裡面存的是啥= = 11/30 01:05
→ sedc:因為裡面存的似乎是「被當做UTF8存起來的BIG5字」= =a 11/30 01:06
→ sedc:還有我連在phpmyadmin的操作介面的網頁下,在有顯示資料的時 11/30 01:14
→ sedc:候,把瀏覽器的編碼改成BIG5,那些東西還是亂碼= =a 目前就只 11/30 01:14
→ sedc:有php網頁把它抓出來後用big5方式顯示才是正常的 一整個怪啊 11/30 01:15
→ sedc:順便請問一下怎麼在PHP中讓寫入資料庫的字串確定是UTF8編碼? 11/30 01:50
推 superGA:不管怎樣 先試試iconv吧 又不難 11/30 02:33
推 sedc:嗯嗯 那想問一下有什麼語法可以快速地讀出資料庫編好後再寫 11/30 03:37
→ sedc:回去啊? 謝謝 11/30 03:38
→ sedc:目前只想到對每一個TABLE各寫一個網頁來改= =a 11/30 03:38
推 buganini:mysqldump出來轉好塞回去收工 11/30 05:36
→ buganini:前面LPH66不是也說了嗎... 11/30 05:37
→ sedc:喔喔 也對 可以一次丟出來轉好= =a 哈哈(汗) 11/30 07:03