今天做项目突然遇到了这个问题,用ajax异步提交数据时,需要从js传入中文参数。
可到后台接收参数,却出现乱码情况,看了很久代码,发现问题啊
原来是在加载js文件时,没有设定charset
<script type="text/javascript" charset="gb2312"></script>
这样就搞定了!!
如果还是没有效果,试试这个把
1.将参数用encodeURI()编码
var
par;
par = " param1= " + " 中文值 " + " ¶m2= " + " 其他值 " ;
var url = " server.aspx " ;
var myAjx = new Ajax.Request(url,{method: get ' ,parameters: encodeURI(par) ,onComplete: submit});
par = " param1= " + " 中文值 " + " ¶m2= " + " 其他值 " ;
var url = " server.aspx " ;
var myAjx = new Ajax.Request(url,{method: get ' ,parameters: encodeURI(par) ,onComplete: submit});
2.接受端代码
NameValueCollection nvc
=
HttpUtility.ParseQueryString(Request.Url.Query, Encoding.UTF8);
string title = (nvc[ " param1 " ] == null ) ? "" : nvc[ " param1 " ];
string title = (nvc[ " param1 " ] == null ) ? "" : nvc[ " param1 " ];