客户端传递到服务器端后数据显示为乱码的解决办法

时间:2021-04-23 18:02:39

        当通过页面提交的方式,或者通过AJAX的方式将客户端用户的输入数据传递到后台页面进行处理的时候,非常有可能会出现后台获取到的中文输入或者一些其他怪异字符串变为“????”或其他乱码的问题,这个时候,如果你查看站点的Web.config文件的话,在这个字段<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>中使用的,很有可能是gb2312,如果修改为UTF-8,或者在使用AJAXSend方法的时候,为数据头添加utf-8编码格式的话,都可以解决问题,如下:setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');,但是,作为全局的编码设定,如果修改的话,则很可能造成整个站点的很多页面的编码都会出现乱码现象,后者,简单修改AJAX发送方法,虽然可以解决问题,但是,不排除也会出现对其他地方的影响。

        这个时候,如果你使用的是AJAX方法的话,那么建议在拼组数据字符串的时候,为每一个页面控件内容进行一次十六进制编码,也就是使用javascriptescape()方法,这样就可以不用修改任何地方;同样,如果你属于前者的话,那么建议修改站点的全局编码格式吧,暂时没有更好的方法。