您的位置:首页 > 运维架构 > Tomcat

tomcat下载文件时,URL含有文字参数与空格参数出错(java.io.FileNotFoundException错误) 解决方法(转)

2012-08-21 13:48 1451 查看
像这个例子 URL="http://10.0.2.2:8080/AndroidServer/Music/陈奕迅 - 浮夸.mp3 "这样的URL就无法通过,所以在“陈奕迅 - 浮夸.mp3”加上URL之前要经过一些处理。

一般情况下,URL参数为文字和空格都会出现乱码,需经过编码后才能执行通过。

下面介绍解决方法:

1.修改tomcat里面的/conf/server.xml文件 找到<Connector port="8080" 节点。在里面

加入URIEncoding="UTF-8" 属性编码 默认编码为"ISO-8859-1"一般情况下是不支持文字参数。

修改后如下:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8"/>

2.参数处理,URL="http://10.0.2.2:8080/AndroidServer/Music/陈奕迅 - 浮夸.mp3 "

在参数 陈奕迅 - 浮夸.mp3 加入URL之前先进行处理,先对其进行编码

例如:String mm="陈奕迅 - 浮夸.mp3";

String ss=URLEncoder.encode(mm, "UTF-8"); //这里是讲String编码成UTF-8

System.out.println("ss="+ss);

//输出结果 ss=%E9%99%88%E5%A5%95%E8%BF%85%+-+E6%B5%AE%E5%A4%B8.mp3

//其中空格被编码成 + ;这样编码后空格编码还是有问题,需在处理,下面继续

ss=ss.replaceAll("\\+","%20"); //因为 + 符号在java是关键字符需要转义,不能直接用

// %20 为空格的编码,这里替换掉,URL才不会报错

URL="http://10.0.2.2:8080/AndroidServer/Music/"+ss

这样URL的文字 空格参数问题就解决了。

其实总的就两句话,修改tomcat配置,参数传之前先处理。

转自:http://www.eoeandroid.com/thread-115195-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐