因为要向浏览器返回图片数据 所以在servlet中调用的response.getoutputstream()
然后我发现只要选取的图片路径含有中文就会取不到文件
example:选择的图片路径为 “D:\文件\图片\image.gif”, File file = new File(该图片路径) ;file.exists()就为false 
假如是D:\data\img\image.gif 整个程序就没有任何问题有遇到过一样问题的朋友吗?
这是编码的问题吗?

解决方案 »

  1.   

    有乱码他就不会正确的路径,你写个filter设置下编码。
      

  2.   

    我刚学到servlet这部分 关于编码的问题一个头两个大 我的理解是:浏览器在向服务器发送数据时会对数据按照本地的编码进行编码 服务器端接受数据后 按照request.getcharacterEncodering()方法设置的编码进行解码成unicode字符串 然后将unicode字符串按照response.getcharacterEncodering()方法设置的参数进行编码 浏览器接收到数据后按照本地编码方式进行解码 
    请问 我的理解有没有什么问题? 谢谢
      

  3.   

    结贴:必须要将路径字符串解码为gb2312格式 new String(fileStr.getBytes("前面编码用的编码格式"),"gb2312")我试过将response的编码格式改为其他 但是对程序没有影响 因此我估计这里的gb2312应该是系统默认编码吧 还有输出中文字符返回找不到某个汉字的iso8859-1码值的问题 就将要输出的中文解码成iso8859-1 比如 new String(“中文”.getBytes(),"iso8859-1")我还只是个初学者 以上所述 一是为了加强记忆 二是 给后来者提个头儿 如果有看到 并发现其真正原因的 请
    发博解释一下 谢谢了!