作者tomin (Schrödinger's cat)
看板Ajax
標題[問題] 特殊字元處理
時間Sun Jun 13 17:58:28 2010
我的表格裡有一些textarea。
我發現如果我不去處理textarea裡的特殊字元,
用a=aaa & b=bbb & c=ccc的形式 將資料送給server 偶爾會有錯誤
例如com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException
當然後端也要處理,只是前端送的值不能讓後端混淆吧!
我的問題在於,該處理那些字呢? "&", "//", "=" 等等,似乎不會造成錯誤。
或者是說,有比較好的送資料的方法嗎?
如果用一些encode()函數,則是會轉成人類難以辨識的符號。
比起一長串的字串 a=aaa&b=bbb,
map形式的 {key1: 'value1', key2: 'value2'}會比較好嗎,
map好像不方便,不能累加或push/put?
如果要寫一個專門處理特殊字元的function,大家會怎麼寫?
function dealSpecialChar(sentence){
....
return sentence;
}
我目前傳送資料的寫法:
var data="300011=" + $("[name=300011]").val()+"&"+
"300012=" + $("[name=300012]").val()+"&"+
"300021=" + $("[name=300021]").val()+"&"+
"300022=" + $("[name=300022]").val()+"&"+
"300031=" + $("[name=300031]").val()+"&"+
"300032=" + $("[name=300032]").val()+"&"+
"300041=" + $("[name=300041]").val()+"&"+
"300042=" + $("[name=300042]").val();
data=data.replace(/%/g,"%"); //%似乎曾經造成DB錯誤
data=data.replace(/\"/g,""");
data=data.replace(/\'/g,"'");
$.ajax({
type: "POST",
url: "myurl",
data: data
success: function(msg){
}
});
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.30.140
※ 編輯: tomin 來自: 140.122.30.140 (06/13 18:04)
推 megaman1206:通常就是要encode過吧 06/13 18:22
→ scribeTW:你這樣還要自己處理中文編碼跟特殊符號問題, 06/13 19:13
→ tomin:酷喔 還在想要怎麼方便的呼叫encodeURIComponent() 06/13 19:58