不好意思,我代码些的有些错误,我的问题应该如下://这样读取文件是没有问题的:
System.out.println(new File().readFile("/D:/wwwroot/Test项目/Test/a.text"));//但是当我用一下方法:
String fielURL = (this.getClass().getResource("/com/a.text")).getPath();
System.out.println(fielURL);
// 这里是:/D:/wwwroot/Test%e9%a1%b9%e7%9b%ae/Test/a.text
// 而实际是:/D:/wwwroot/Test项目/Test/a.text
System.out.println(new File().readFile(fielURL)); //出错了,%e9%a1%b9%e7%9b%不认识//怎么办啊?

解决方案 »

  1.   

    应该是是乱码的问题转码:fielURL = new String(fielURL.getBytes("ISO-8859-1"),"GB2312");
      

  2.   

    fielURL = new String(fielURL.getBytes("ISO-8859-1"),"GB2312");你上面那位不是已经说了吗~
      

  3.   

    fielURL = new String(fielURL.getBytes("ISO-8859-1"),"GB2312");你上面那位不是已经说了吗~
    ---------
    这个不是乱码问题,是编码的问题啊。
      

  4.   

    用java.net.URLEncoder.encode()把中文部分编码,然后和其他路径拼起来就可以了以后文件名不要起中文的,麻烦大了
      

  5.   

    java.net.URLEncoder.encode("%e9%a1%b9%e7%9b%")做一下转码,你用java.net.URL得到路径的时候,为了可以认识多字节的文字, url自动做了一下转码……
      

  6.   

    java.net.URLDecoder.decode("D:/wwwroot/Test%e9%a1%b9%e7%9b%ae/Test/a.text");
    用这个转换一下
      

  7.   

    很奇怪的:“项目”在(this.getClass().getResource("/com/a.text")).getPath();后是:
    %e9%a1%b9%e7%9b%ae
    这个用URLDecoder.decode还原后是不对的。而用java.net.URLEncoder.encode()后是:
    %CF%EE%C4%BF
    这个是可以用URLDecoder.decode还原。两次不一样,说明了getResource返回的URL可能不是通过URLEncoder.encode()的,为什么呢,怎么样解决?
      

  8.   

    直接用拼装后的URL就好使,你试没试啊?你输出它干嘛?输出后当然是转码后的格式了
      

  9.   

    还有不能一起转,要只转中文,然后再拼,否则URL就识别不了了