|
一次开发中,遇到了很头大的中文问题,起初, 为了解决中文的参数传递问题,将/conf/server.xml中的编码设置为GBK,这时,中文的问题不存在了, 包括post get数据也是正常的。 但是中文的文件却不能下载,每次访问中文的文件时,总是报“资源找不到”。 结果,在网上一查,有人说是将/conf/server.xml中的编码改成UTF-8。结果试了一下,果然OK。但这时,get方式提交表单或者URL中有中文时,又不能正常获取了。结果又改回到了GBK编码,通过以下方式解决中文文件下载的问题
<%
String fileUrl = java.net.URLEncoder.encode(search_result_info.getUrl(),"gbk");
fileUrl = cn.com.dekn.cms.util.StrUtil.replaceAll(fileUrl,"+"," ");
fileUrl = cn.com.dekn.cms.util.StrUtil.replaceAll(fileUrl,"%2F","/");
%>
<a href="<%=fileUrl%>">
即使用 java.net.URLEncode 类对URL进行编码,编码为GBK, 而后在显示这个编码后的URL。 这个URL编码后,也baidu的方式是相同的。 但是JAVA的URLEncode将空格与/符号也进行了编码,似乎编码与浏览器采用的不一致,所以我在上面特别把空格与/去除,不对它们进行编码,编码后的 + 就是原先的空格, %2F就是/ 。 后面打算继续彻底分析这个问题。 或者写一个适用的URLEncode类。 |
|
|