[請益] 雜亂的編碼問題

看板PHP作者 (看文不要只會用橫的看)時間13年前 (2010/11/03 23:31), 編輯推噓4(406)
留言10則, 2人參與, 最新討論串1/1
不才遇上一個問題。 客戶的機器資料庫編碼是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)

11/04 02:22, , 1F
SET NAMES有設什麼嗎? 要設latin1 (預設應該就是)
11/04 02:22, 1F

11/04 02:22, , 2F
全系統要改寫的話 如果沒有需要在用到big5 建議全轉utf-8
11/04 02:22, 2F

11/04 02:30, , 3F
然後建議確認一下是big5-hkscs還是uao 可以用firefox看
11/04 02:30, 3F

11/04 02:31, , 4F
big5跟big5-hkscs那個內容正確 (firefox的big5含uao)
11/04 02:31, 4F

11/04 02:32, , 5F
第二行應該說 如果沒有不能修改而且需要用big5的系統的話
11/04 02:32, 5F

11/04 02:33, , 6F
算了 還是不改比較正確:|
11/04 02:33, 6F

11/04 02:45, , 7F
第一行完整的說是要轉成big5+set names latin1
11/04 02:45, 7F

11/06 12:31, , 8F
<form ### accept-charset="big5">
11/06 12:31, 8F

11/06 12:31, , 9F
這樣表單 submit 出去的值被 server 接收時會是 big5 碼
11/06 12:31, 9F

11/06 12:32, , 10F
再用 iconv 或其他 big5->utf8 表格做轉換
11/06 12:32, 10F
文章代碼(AID): #1CqO1D1w (PHP)