我是从xml中读取文件的信息  信息中含有url地址  例如http://127.0.0.1:8080/resources/a.doc当然这个是英文的  是可以运行的  但a.doc换 成中文后  例如 我.doc就不行了   现在我要用这个url 找到这个文件  然后读出并可以提供下载 在url是英文的情况下 这些工作已经做完了  但是是中文的话  就会提示 找不到文件  但这个文件确确实实是存在的  路径也对 啊   求高手  今天是最后一天 我不想放弃 如果今天整不好   就要放到整个项目的 最后在处理   那要等到什么时候 啊   实在是不甘心啊

解决方案 »

  1.   

    参见
    http://www.iteye.com/topic/107709
    注意这说的是独立运行的Tomcat,不是Eclipse中运行的Tomcat哦。
      

  2.   

    注意服务器和客户端的编码格式也可可以进行转码,将汉字转制成URL格式的UTF8编码如 我 = %CE%D2如果你不知道汉字怎么转码有两种方法://js
    var filename ="大厅";
    filename = encodeURI(filename);
    filename = encodeURI(filename);二是,你到百度按关键字搜索,百度的地址栏也会有转码后的结果
      

  3.   

    先谢谢各位了啊  我想知道我这个编码改变应该把她放哪url连接之前吗
      

  4.   

    在我的机器上  汉字转制成URL格式的gbk编码为我 = %CE%D2
     汉字转制成URL格式的gbk编码为
    我 = %E6%88%91
    还会不一样吗
      

  5.   

    有中文的方法!是不建议使用的!但是有时候真的没有办法的时候!你可以把要作为url的中文在baidu中输入!然后搜索!把上面的转码复制到url中!就OK了!
      

  6.   

    百度 URLEncoder.encode("你好","GBK");
    谷歌 URLEncoder.encode("你好","UTF-8");
      

  7.   

    我是在myEclipse中运行tomcat的  当然我也试验过了  没有效果啊
      

  8.   

    我刚又试了下,
    只要将server.xml文件中的URIEncoding="utf-8" 加上,
    中文文件名的页面就可以访问了,
    IE/FireFox都测过。
    什么转码、过滤器都不需要的。
      

  9.   

    先解决你的问题。
    在Tomcat的conf文件夹下的server.xml文件中
     <Connector port="8080" ..... useBodyEncodingForURI="true" URIEncoding="UTF-8" />
    加上 useBodyEncodingForURI="true" URIEncoding="UTF-8" ,就可以解决了。其次你是不是想通过url来下载服务器上的文件(中文名字的)。
    上面的做法只能说可以实现,但是不太可取,因为针对不同的中间件,可能配置都不一样,而且还存在安全的和临时文件的问题。
    所以我推荐你用其他的方法来实现下载的功能。
    有兴趣你可以看看我的博客。里面介绍了几种简单的方法。
    http://blog.csdn.net/liubo0_0/article/details/6204717
      

  10.   

    用encodeURI,还可以设置tomcat编码
      

  11.   

    那样配置就可以直接在浏览器里得到文件  中文的也可以了  但这不是我想要的  我要读出文件而且url不是从前台传进来的  如果写个main函数 定义一个String类型的变量s  将s传给URL url = new URL(s)  这样可以成功的话  我的事情才可以解决
      

  12.   

    我是来结贴的 谢谢大家了  解决了   哎 简单的很  就是百度 URLEncoder.encode("你好","GBK");
    谷歌 URLEncoder.encode("你好","UTF-8"); 
    这种情况了