ubuntu服务器下中文路径资源无法找到的一些问题
来源:互联网 发布:整容锥子脸 知乎 编辑:程序博客网 时间:2024/06/03 13:46
关于tomcat作为服务器 URL访问的一些问题
由于tomcat对中文支持不是很好,所以在某些情况下导致URL无法访问或者找不到路径的问题,一般主要存在两个问题:
1.含有中文的URL无法访问
上传一个资源到服务器后,通过连接无法进行访问,进行几次尝试之后,发现如果URL包含中文字符则无法访问,而纯英文字符的URL则可以访问。网上查资料发现是tomcat默认的配置不支持中文路径访问,因为通过链接进行访问时采用的是get协议,而默认的get协议是采用ISO-8859-1对URL进行编码的,而这个字符集不支持中文双字节信息。
在Server.xml文件中添加一个名为URIEncoding的属性,它定义了对HTTP请求中的get方法传过来的URL进行编码的采用的方案。
在Tomcat安装目录下找到server.xml文件,找到
<Connector port=”8080” protocol=”HTTP/1.1” connectionTimeout=”20000” redirectPort=”8443” />
在里面加入URIEncoding=”utf-8” 这个属性,保存,然后重启tomcat即可。
2.含有空格的URL无法访问
在下载一个mp3文件的时候,如果它的资源URL为”http:10.0.0.2:8080/MusicServer/resource/今天 - 刘德华.mp3”,路径中含有空格和中文字符,会报找不到该资源的错误。报这种错误主要有两个原因:1)没有对中文部分进行转码;2)路径中空格要进行转换。
例如:
String urlString="http:10.0.0.2:8080/MusicServer/resource/今天 - 刘德华.mp3";String name="今天 - 刘德华.mp3";String temp1=URLEncoder.encode(name, "UTF-8");System.out.println(temp1);
输出结果为:%E4%BB%8A%E5%A4%A9+-+%E5%88%98%E5%BE%B7%E5%8D%8E.mp3
发现空格被转码成’+’了,而在tomcat服务器中,空格是’%20’,所以会导致无法访问到该路径,可以采用下面的办法解决问题:
首先将中文部分转码成UTF-8格式的字符串,然后将转换后得到的字符串中的所有’+’替换成’%20’。
String urlString="http:10.0.0.2:8080/MusicServer/resource/今天 - 刘德华.mp3";String name="今天 - 刘德华.mp3";String temp1=URLEncoder.encode(name, "UTF-8");String temp2=temp1.replaceAll("\\+", "%20"); //因为'+'是关键字,所以要进行转义System.out.println(temp1);System.out.println(temp2);
输出结果就为:
%E4%BB%8A%E5%A4%A9+-+%E5%88%98%E5%BE%B7%E5%8D%8E.mp3
%E4%BB%8A%E5%A4%A9%20-%20%E5%88%98%E5%BE%B7%E5%8D%8E.mp3
是正确的结果了。
- ubuntu服务器下中文路径资源无法找到的一些问题
- Butterknife 无法找到资源的问题
- 解决python中路径中包含中文无法找到文件的问题
- Ubuntu下Apache重启无法找到服务器名称
- 找到的一些资源
- ubuntu下pdf文件打开中文无法显示的问题
- ubuntu 16.04 LTS 下Robomongo 无法输入中文的问题
- Ubuntu 16.04 下 Qt 5.6 无法输入中文的问题
- 解决Ubuntu下pycharm无法输入中文的问题
- ubuntu下texstudio或qtcreator无法输入中文的问题
- 关于ubuntu 12.04 下android adb无法找到Nexus 7的问题个人解决经历
- ubuntu下apt-get install能找到但无法安装的问题
- “/”应用程序中的服务器错误。无法找到资源。
- 解决java中文问题的一些资源
- 找到的一些好资源
- ubuntu下adb无法找到真机的问题解决
- ubuntu下无法显示中文的解决办法
- Ubuntu无法找到add-apt-repository问题的解决方法
- MongoDB 更新文档
- HTTP状态码大全
- svn检出数据的方式
- C#连接数据库最基本操作之sql语句 DML
- Mysql上查询字段多行变成一行,函数小技巧.
- ubuntu服务器下中文路径资源无法找到的一些问题
- java ftp编程
- 智能领域死伤无数,这家公司为什么能被谷歌亚马逊看重?
- 人工智能将改变我们变老的方式
- AI有可能了解人类感情吗?
- 本地编译 gulp 项目
- Dataguard日常维护及故障解决
- <mvc:annotation-driven/>作用
- android-Scheme