[問題] 特殊字元處理

看板Ajax作者 (Schrödinger's cat)時間15年前 (2010/06/13 17:58), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
我的表格裡有一些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)

06/13 18:22, , 1F
通常就是要encode過吧
06/13 18:22, 1F

06/13 19:13, , 2F
你這樣還要自己處理中文編碼跟特殊符號問題,
06/13 19:13, 2F

06/13 19:15, , 3F
06/13 19:15, 3F

06/13 19:58, , 4F
酷喔 還在想要怎麼方便的呼叫encodeURIComponent()
06/13 19:58, 4F
文章代碼(AID): #1C5Al7GB (Ajax)
文章代碼(AID): #1C5Al7GB (Ajax)