我在windows 下上传文件,不是乱码。但是 把工程部署到linux 下,上传以后,中文文件名是乱码,但是里面的中文内容不是乱码,这究竟是什么原因,求解,请大师帮忙,非常感谢!windows 下是 gbk编码,linux 是utf-8

解决方案 »

  1.   

    谢谢。但是我把 文件名 由 gbk 转为utf-8 还是不可以.
      

  2.   

    转码的时候不一定非要指定明确的编码,可以先获取系统本身的编码集再进行转码,这个问题你可以添加文件名的打印信息或者debug一下看看,你的这个文件名在上传前后在你的程序里面是不是乱码。
      

  3.   

    我打印日志了, linux 中,在上传之前action 里面获取的文件名是中文的。上传以后就是 乱码了。我用 的是path 是上传的目标地址
    imageFileName:是我获取的文件名。(类似于 (ivr文件.vxml)) 这种格式的。
    String imageName = imageFileName.substring(0, imageFileName
    .lastIndexOf("."))
    + UUID.randomUUID().toString();
    上传:
    FileUtils.copyFile(image, new File(path
    + "uipconfig/fileUpload", imageName
    + imageFileName.substring(imageFileName
    .lastIndexOf("."), imageFileName.length())));
    上传以后怎么看文件的名字那。