日期:2014-05-17  浏览次数:20801 次

jsp页面无发打开中文名的链接文件 出现乱码 求高手赐教!!!
我要实现的功能是 数据库里有一个字段存的是文件的地址 后台获取到这个地址之后做一个链接 在前台页面直接点这个链接就能打开文件  
遇到的问题是,凡是中文名的文件一律在IE地址栏里出现乱码 找不到文件 如果是英文的就好使  

我在网上找了好多方法 但都么有解决 我的代码如下 希望高手赐教,感激不尽!!!

String dz1=java.net.URLEncoder.encode("uploadfiles/fangandingjia/英语学习网站大全.doc","UTF-8");

<a href="<%=request.getContextPath()%>/<%=dz1 %>" type="application/msword > 文件1</a>

tomcat里的server.xml也配置了  
  <Connector port="8080" protocol="HTTP/1.1" 
  connectionTimeout="20000" 
  redirectPort="8443" URIEncoding="UTF-8" />  



------解决方案--------------------
修改数据库。
PathCode,PathName.
PathCode使用英数字。
------解决方案--------------------
IE6及以下是不支持中文自动转码的
IE7及以上是支持的
所以如果想所有的版本都支持url的中文,那么最好先转码一下,js用encodeURI函数
------解决方案--------------------
filename = java.net.URLEncoder.encode(filename, "UTF-8");// 处理中文文件名的问题
加这句话就可以了
filename = new String(filename.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题
对字符编码没多深入了解,不过你保存在upload下的文件名跟被编译过的乱码肯定不匹配,所以当服务访问到upload下的时候,是找不到文件的