rogergao
rogergao
采纳率0%
2015-12-26 09:09

HttpWebResponse ResponseUri 跳转的URL中存在中文就乱码

20

C# 代码

                          string MyLink =  “http://www.zei8.net/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515”;
                                                        HttpWebRequest “request = (HttpWebRequest)WebRequest.Create(MyLink);
                            rettpWebRequest)WebRequest.Create(MyLink);quest.Method = "GET";
                            request.Headers.Clear();
                            request.ContentType = "application/x-www-form-urlencoded";
                            request.KeepAlive = true;
                            request.AllowAutoRedirect = true;


                            HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();

                            string mydownurl = httpResponse.ResponseUri.ToString();
                            httpResponse.Close();

服务器端的情况无法控制,我们无法更改服务器端代码。

MyLink 为原始的地址
形式为 http://www.*******.com/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515
我通过以上代码 获取mydownurl得到真实地址,但是当真实地址中存在中文的时候 获取的地址显示为乱码 是这样的地址

http:///www.*******.com/2015/201502/Äê14-20ÈÕ½ðÈÚ°²È«ÔËÐп¼ºËÇé¿öͨ±¨.rar

实际地址是

http:///www.*******.com/2015/201502/《原来康熙》全集.rar

找了个测试地址

http://www.zei8.net/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • rogergao rogergao 6年前
    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 6年前

    这样试试,获取响应头后的地址

    
            request.AllowAutoRedirect = false;//禁止跳转
            //request.AllowAutoRedirect = true;
    
    
            HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
            string mydownurl = httpResponse.GetResponseHeader("location");//
    
    点赞 评论 复制链接分享
  • yanweihu 阳光蔷薇 6年前

    可以发给我url链接吗,我试下

    点赞 评论 复制链接分享
  • q4444tita 青春逝如流水 6年前

    用iso8859重新获取一次…然后把获取到的用utf8格式在编码一次

    点赞 评论 复制链接分享
  • qq_33381918 ForHeartOnly 6年前

    设置一下编码格式:方法:
    response:
    A、设置服务器端的编码
    response.setCharacterEncoding("utf-8”);
    B、通知浏览器服务器发送的数据格式
    response.setContentType("text/html;charset=utf-8”);
    C、浏览器使用utf-8进行解码

    request;
    A、post方式
    post方式属于表单提交,参数存在于请求体中。
    request.setCharacterEncoding("utf-8”)
    B
    在tomcat的server.xml中,设置元素的属性URIEncoding="UTF-8”即可。(默认没有设置此属性)

    点赞 评论 复制链接分享

相关推荐