作者averywu (看文不要只會用橫的看)
看板PHP
標題[請益] 雜亂的編碼問題
時間Wed Nov 3 23:31:22 2010
不才遇上一個問題。
客戶的機器資料庫編碼是ISO-8859-1(Latin 1)
可是裡面存放的資料是BIG5 &
BIG5-HKSCS (估計是舊系統轉到XP上用時
輸入了不少傳統BIG5以外的字)
現在全系統要改寫,用PHP加AJAX來做。
我的做法是表單會CALL一支query.php來動態撈資料庫的東西。
問題是,表單那由javascript送出的字串一定會是UTF8.
傳到我的query.php時,也是UTF8。所以送到server去查就什麼都查不到。
(例:葉 這個字,UTF8編碼是 %u8449 ,但他資料庫存的是 ,-' (大概長那樣))
我知道由query.php傳回表單時亂碼用
header("Content-Type:text/html;charset=big5"); 可以解決掉。
但是現在表單是BIG5,送出字串是UTF8,DB編碼是Latin 1,DB資料是Big5...
我試過用iconv去轉表單傳來的字串,但是完全沒效果。
有人可以提供一些方向嗎?感謝。
--
小惡魔的家
http://blog.pixnet.net/shiuju/
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.142.152
※ 編輯: averywu 來自: 59.124.142.152 (11/03 23:32)
推 buganini:SET NAMES有設什麼嗎? 要設latin1 (預設應該就是) 11/04 02:22
→ buganini:全系統要改寫的話 如果沒有需要在用到big5 建議全轉utf-8 11/04 02:22
推 buganini:然後建議確認一下是big5-hkscs還是uao 可以用firefox看 11/04 02:30
→ buganini:big5跟big5-hkscs那個內容正確 (firefox的big5含uao) 11/04 02:31
→ buganini:第二行應該說 如果沒有不能修改而且需要用big5的系統的話 11/04 02:32
→ buganini:算了 還是不改比較正確:| 11/04 02:33
推 buganini:第一行完整的說是要轉成big5+set names latin1 11/04 02:45
推 danny0838:<form ### accept-charset="big5"> 11/06 12:31
→ danny0838:這樣表單 submit 出去的值被 server 接收時會是 big5 碼 11/06 12:31
→ danny0838:再用 iconv 或其他 big5->utf8 表格做轉換 11/06 12:32