问题描述
HttpURLConnection无法打开含有中文的链接???URLurl=newURL(http://192.168.0.154:8080/test/标题.mp3);hc=(HttpURLConnection)url.openConnection()intresCode=hc.getResponseCode();if(resCode==404)thrownewException(sUrl);抛异常!如果http://192.168.0.154:8080/test/标题.mp3换成http://192.168.0.154:8080/test/1.mp3就可以,文件名含中文就报错????
解决方案
解决方案二:
URLurl=newURL(URLEncoder.encode("http://192.168.0.154:8080/test/标题.mp3","UTF-8"));
编码根据具体情况修改,比如GBK
解决方案三:
引用1楼java2000_net的回复:
JavacodeURLurl=newURL(URLEncoder.encode("http://192.168.0.154:8080/test/标题.mp3","UTF-8"));编码根据具体情况修改,比如GBK
java.net.MalformedURLException:noprotocol:http%3A%2F%2F192.168.0.154%3A8080%2Ftest%2F%E6%A0%87%E9%A2%98.mp3
解决方案四:
Url中不能有中文,要转码哦
解决方案五:
引用3楼alexandertech的回复:
Url中不能有中文,要转码哦
+1
解决方案六:
使用UTF-8和GBK都抛下面的异常:java.net.MalformedURLException:noprotocol:http%3A%2F%2F166.111.138.154%3A8080%2Ftest%2F%B1%EA%CC%E2.mp3
解决方案七:
URLurl=newURL("http://192.168.0.154:8080/test/"+URLEncoder.encode("标题.mp3","UTF-8"));
不会变通啊,呵呵!
解决方案八:
URLurl=newURL("http://192.168.0.154:8080/test/"+URLEncoder.encode("标题","UTF-8")+".mp3");
解决方案:
引用7楼java2000_net的回复:
JavacodeURLurl=newURL("http://192.168.0.154:8080/test/"+URLEncoder.encode("标题","UTF-8")+".mp3");
//URLurl=newURL("http://localhost:8080/猫.ico");//URLurl=newURL(URLEncoder.encode("http://localhost:8080/猫.ico","utf-8"));//URLurl=newURL("http://localhost:8080/"+URLEncoder.encode("猫","utf-8")+".ico");//URLurl=newURL("http://localhost:8080/"+newString("猫".getBytes("gb2312"),"iso-8859-1")+".ico");试了,都不好用!
解决方案:
引用7楼java2000_net的回复:JavacodeURLurl=newURL("http://192.168.0.154:8080/test/"+URLEncoder.encode("标题","UTF-8")+".mp3");还是报404的异常
解决方案:
你的tomcat,是不是支持呢?在host里面有个URIEncoding="GBK"或者URIEncoding="UTF-8"这个参数要加上的。换句话说,你的服务器也要支持中文URL才可以。
解决方案:
up求救............
解决方案:
引用10楼java2000_net的回复:
你的tomcat,是不是支持呢?在host里面有个URIEncoding="GBK"或者URIEncoding="UTF-8"这个参数要加上的。换句话说,你的服务器也要支持中文URL才可以。
明白了
解决方案:
这个有,链接本身是没有问题的
解决方案:
在读取任何内容的过程中、java默认的是老外的那一套、所以自己要该下子编码、
解决方案:
谢谢,,解决大问题了,,
解决方案:
用utf8编码
解决方案:
StringurlStr="http://10.10.10.10:8080/servertest/测试下载.pdf";Stringdocname=urlStr.substring(urlStr.lastIndexOf("/")+1);urlStr=urlStr.substring(0,urlStr.lastIndexOf("/"))+"/"+URLEncoder.encode(docname,"utf-8");URLurl=newURL(urlStr);HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();前面的http://10.10.10.10:8080不要进行转码,只对后面的进行转码就可以了。我遇到的问题是这样解决的。
解决方案:
全部使用这个UTF-8支持中文的
解决方案:
通过本帖子,解决问题,多谢各位。