作者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)
1F:推 megaman1206:通常就是要encode过吧 06/13 18:22
2F:→ scribeTW:你这样还要自己处理中文编码跟特殊符号问题, 06/13 19:13
4F:→ tomin:酷喔 还在想要怎麽方便的呼叫encodeURIComponent() 06/13 19:58