页面编码,传参使用中文时的问题
问题描述:在asp.net的web.config里设置了默认的responseencoding与requestencoding为gb2312,而jQuery的传参是默认的utf-8,那么就出现中文乱码现象。
<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
解决过程:
1、因为数据传递到.net服务器,系统自动进行了gb2312解码,将utf-8编码解码成gb2312,则出现解码出错,有些数据丢失!在这里我尝试了进行gb2312编码,再用utf-8解码,因为在接收数据的时候出现了数据丢失或者更改,导致这样解码出来跟原来总有一点差别。
2、解决办法:修改formvalidator.js的
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(srcjo.val());
为var parm = "clientid="+id+"&"+id+"="+encodeURI(encodeURI(srcjo.val()));
服务器用string account = HttpUtility.UrlDecode(Request.QueryString["textusername"].ToString(), Encoding.UTF8);进行解码就能解决问题了。
前台页面JS中的设置:
function ValidationNickName(source, arguments) {
var userName = document.getElementById("txtNickName");
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
oBao.open("Get", "CheckCusSSLNicknameService.aspx?username=" +encodeURIComponent(userName.value), false);
oBao.send();
var strResult = oBao.responseText;
后台接收传递参数的CS:
if (Request.QueryString["username"] != null)
UserName =HttpUtility.UrlDecode(Request.QueryString["username"].ToString(), Encoding.UTF8);
这样就可以使用中文做为参数传递了.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步