关于在ajax中传递中文引起的乱码问题。
生活随笔
收集整理的這篇文章主要介紹了
关于在ajax中传递中文引起的乱码问题。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
測試了下,以form的形式提交,不管是ie或者google瀏覽器或者火狐都沒出現亂碼情況。
而放在
function?editMenu()?{var?menuName?=?$("#menuName").val();menuName?=?encodeURIComponent(menuName);?var?parentMenu?=?$("#parentMenu?option:selected").val();var?functionId?=?$("#functionId?option:selected").val();var?menuId?=?$("#menuId").val();var?url?=?'<%=contextPath%>/menuEditServlet?menuId='+menuId+'&parentMenu='+parentMenu+'&functionId='+functionId+'&menuName='+menuName;$.post(url,function(data){var?result?=?eval(data);if(result)?{$("#result").html("編輯菜單成功");}else?{$("#result").html("編輯菜單失敗");}});}以上面這樣的形式提交的時候,在ie上出現了亂碼。
解決方案是對中文進行編碼menuName = encodeURIComponent(menuName);?
具體原因可以參照如下提問:
http://www.oschina.net/question/778987_125081
還有這個地方也需要注意了自己是否有設置了
http://my.oschina.net/u/778987/blog/160066
2014-2-25更新
在url上傳遞中文會遇到亂碼問題,那么就換個思路,使用jquery的post方法的時候,不在url上拼裝參數,直接使用比如下面這個例子
function?editFunction()?{var?functionName?=?$("#functionName").val();var?functionId?=?$("#functionId").val();var?functionUrl?=?$("#url").val();var?url?=?'<%=contextPath%>/functionEditServlet';var?data?=?{functionId:functionId,functionName:functionName,url:functionUrl}$.post(url,data,function(json){var?result?=?json.result;if(result)?{$("#result").html("編輯功能成功");}else?{$("#result").html("編輯功能失敗");}},"json");}使用$.post(url,data,function())方法,用參數值data傳遞,這樣就不出現亂碼了。
轉載于:https://my.oschina.net/liangzhenghui/blog/160124
總結
以上是生活随笔為你收集整理的关于在ajax中传递中文引起的乱码问题。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 合成生物学,合成生物学原理
- 下一篇: 安装已停止,原因是 ProjectTyp