• [转载]url带中文参数显示乱码的问题


    原文地址:http://www.cnblogs.com/inday/archive/2008/01/12/1035902.html

    如果想在repeater 之类中绑定图片,请使用HTML图片按钮,

    <img  id="imgtype" name="imgtype" runat="server" src='<%#ChangeImg(Eval("ImgURL")) %>' />

    搞定。。


    因为这个公用转向文件,是针对所有分站的,分站代码有.net和asp两种,文件编码格式也不一样。

    头大的事情开始了。asp站的文件编码是gb2312,虽然.net的文件格式也是gb2312,但因为webconfig里设置的requestEncoding是utf8的,所以在接收中文的时候,无论你UrlDeCode怎么解码,哪怕你指定用gb2312解码,出来的还是乱码,那这时候你会说改下webconfig文件呀,不错!如果是你自己的小项目,这样的改动或许不算什么,可如果牵涉到很多项目,在你没办法改的情况下怎么办呢????

    先看看例子吧:
    环境:
    asp:文件名:test.asp 文件编码:gb2312
    .net:文件名:test.aspx,test.aspx.cs 文件编码:gb2312
    .net:文件名:go.aspx, go.aspx.cs文件编码:gb2312
    test.asp 代码:

    <%
    str 
    = Server.UrlEncode("中文测试")
    Response.Redirect 
    "go.aspx?name=" & str
    %
    >


    test.aspx.cs代码:

    string str = HttpUtility.UrlEncode("中文测试");
    Response.Redirect(
    "go.aspx?name=" + str);

    go.aspx.cs代码:

    string name = HttpUtility.UrlDeCode(Request["name"], Encoding.GetEncoding("gb2312"));

    Response.Redirect(
    "http://www.xxx.com?name=
    "
     + HttpUtility.UrlEncode(name));

    其实在go.aspx.cs中,大家以为编码定到gb2312,应该会正常了,其实错了,我跟踪了一下,在Request["name"]的时候,已经解码,解码的是按照webconfig设置的,那就是utf8。

    ok,.Net中,可以指定编码进行url编码,test.aspx.cs可以变成:HttpUtility.UrlEncode("中文测试", Encoding.GetEncoding("utf-8")) 这样go.aspx接收后会完全转换的。

    可asp的Server.UrlEncode是没有这个参数的,怎么办呢?
    2个办法:
    1、把test.asp保存为utf-8编码
    2、就是我自己想的一个不是办法的办法。
    因为前面说了,我牵涉的项目都是无法更改编码的,如果更改对网站的牵涉太大,所以只能另外想办法。

    在做了大量测试后,我发现UrlEncode转码后成为%AB%CD格式,大家都知道UrlEncode在转码英文的时候,会原封不动的还给你,比如你传A,接收方接收的也是A,%会转换成%25,UrlDecode解码的时候%25无论你什么编码,都会解码成%

    好,有思路了,假设“中文测试”编码为%AB%CD%EF%GH

    str = Server.UrlEncode("中文测试"'%AB%CD%EF%GH
    str1 = Server.UrlEncode(Server.UrlEncode("中文测试")) '%25AB%25CD%25EF%25GH


    我们再改下go.aspx.cs

    Response.Write(HttpUtility.UrlDeCode(Request["str"],Encoding.GetEncoding("gb2312"));

    Response.Write(HttpUtility.UrlDeCode(Request[
    "str1"],Encoding.GetEncoding("gb2312"));
  • 相关阅读:
    洛谷 P1226 【模板】快速幂||取余运算 题解
    洛谷 P2678 跳石头 题解
    洛谷 P2615 神奇的幻方 题解
    洛谷 P1083 借教室 题解
    洛谷 P1076 寻宝 题解
    洛谷 UVA10298 Power Strings 题解
    洛谷 P3375 【模板】KMP字符串匹配 题解
    Kafka Shell基本命令
    Mybatis与Hibernate的详细对比
    MyBatis简介
  • 原文地址:https://www.cnblogs.com/Jack_G/p/2110964.html
Copyright © 2020-2023  润新知