• ajax 请求如何解决乱码


    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题。

    如下代码:

    function UpdateFolderInfoByCustId(folderId, folderName, custId) {
        $.ajax({
            type: "Post",
            contentType: "application/x-www-form-urlencoded; charset=utf-8",
            url: "http://localhost/CRM/Ashx/HandKBSucessCustomer.ashx?Method=UpdateCustomerByCustId&folderId=" 
            + folderId + "&folderName=" + encodeURI(encodeURI(folderName)) + "&custId=" + custId,
            success: function (msg) {
                alert(msg);
            },
            error: function (error) {
                alert(error);
            }
        });
     }

    如上代码 如果只是传“&foderName=”+folderName 的话,汉字就会产生乱码,如果经过encodeURL 转换两次的话,汉字编码会变为类似

    “%e6%b5%8b%eb%af%95” 的格式。转换为这种格式之后,在获取的时候在转码,如下所示:

     public void UpdateCustomerByCustId()
            {
                int folderId = Convert.ToInt32(Request["folderId"]);
                string folderName = Request["folderName"];
                string folderName2 = Convert.ToString(System.Web.HttpUtility.UrlDecode(folderName));
                int custId = Convert.ToInt32(Request["custId"]);
                bool res = false;
                try
                {
                    res = CustomerBusiness.UpdateCustomerByCustId(folderId, folderName2, custId);
                }
                catch (Exception ex)
                {
                   throw;
                }
                Response.Write(res);
            }
        }
    }

    经此转换之后,即可获取到传输的汉字。

  • 相关阅读:
    SQL通配符
    全角半角内容转换
    使用merge into 来更新目标表的个别字段
    数据库分库分表思路
    impdp导入错误ORA-14460
    CentOS只有GNOME桌面,没有GNOME经典桌面
    sqlserver进行发布订阅时提示实例上未安装复制组件解决方法
    SQLSERVER发布订阅,超详细
    sqlserver查询锁以及解锁
    sqlserver调用java文件
  • 原文地址:https://www.cnblogs.com/q101301/p/3658876.html
Copyright © 2020-2023  润新知