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

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

设置一下编码格式:方法:
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”即可。(默认没有设置此属性)

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

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

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


        request.AllowAutoRedirect = false;//禁止跳转
        //request.AllowAutoRedirect = true;


        HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
        string mydownurl = httpResponse.GetResponseHeader("location");//

发个纯测试地址 ,无他

http://www.zei8.net/plus/download.php?open=2&id=5697&uhash=0b132c1e9925356111d21bd8