读书人

解决linux环境上下传文件及读取csv文件

发布时间: 2012-06-29 15:48:46 作者: rapoo

解决linux环境下上传文件及读取csv文件乱码

  昨天弄了短信运营工具,开始时候本机测试一切ok的,但是放到linux环境上就是不行,读取的csv文件为乱码,  找了一堆堆的资料还是不行。我的机器环境是win7系统。
?
            String realPath = WebApplicationConstant.WEB_ROOT +             SpringPropertyConfigurer.getContextProperty("manage.path.tmp");            File fileDir = FileHelper.createDirIfNoExist(realPath);            int maxsize = Integer.parseInt(SpringPropertyConfigurer.getContextProperty("manage.file.available.size.profile"));            MultipartRequest mr = new MultipartRequest(request, realPath, maxsize, "UTF-8");
?
 String realPath = WebApplicationConstant.WEB_ROOT + SpringPropertyConfigurer.getContextProperty("manage.path.tmp");                    BufferedReader reader;                    try {                        FileReader fr = new FileReader(realPath + uploadfile);                         reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(realPath + uploadfile)), fr.getEncoding()));                        reader = new BufferedReader(fr);                        String str = null;
?
我采用的是动态获取文件编码,之后按照这个编码读取文件,但没什么用!!!linux系统编码是utf-8的,我win7系统编码默认是UTF-8,程序编码是UTF-8,jvm是GBK的,所以我本地上传ansi文件之后,fr.getEncoding 获取的是当前运行他的工具。比如我jvm  gbk 获取的就是gbk。但是我更改jvm 运行编码为UTf-8  fr.getEncoding打印出的UTF-8

?

十分怪异的问题,希望高手明确指点下非常感谢!!!
linux环境下tomcat设置如下方式,即可上传默认的ansi文件编码,存到数据库不会乱码!!!!!!
?
# add GBK file encodingJAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

注意:eclipse工具默认的String encoding = System.getProperty("file.encoding"); System.out.println("你的操作系统所用的编码为:"+encoding)

?

读书人网 >UNIXLINUX

热点推荐