• 页面编码,传参使用中文时的问题


    问题描述:在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);

    这样就可以使用中文做为参数传递了.

  • 相关阅读:
    MysqlServer如何实现成功卸载,并成功安装
    win7安装xampp,提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)
    (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除
    (转)SVN 服务端、客户端安装及配置、导入导出项目
    正则表达式详解
    Struts2.3.4+Hibernate4.2.4+Mysql6.0整合
    CSS中TRBL和position关系
    const typedef #define
    数组的替代品
    输入
  • 原文地址:https://www.cnblogs.com/activities/p/2186283.html
Copyright © 2020-2023  润新知