看板 PHP 關於我們 聯絡資訊
不才遇上一個問題。 客戶的機器資料庫編碼是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