CSV 文件 上传 乱码

CSV 文件 上传 乱码

项目有上传csv文件的功能的,一开始upload中文的文件是没有乱码出现的,但是某一版本开始就出现乱码了。
调试了很多方法,发现上传的格式是没有错的,请求的编码和接受的编码是一致的,但还是出现乱码。

后来检查代码发现是读取csv文件的时候出现乱码,原来的写法是没有规定使用哪种编码来读取csv文件,所以读取出来的代码乱码了,更换了读取csv文件的写法,并使用UTF-8编码格式来读取后,乱码的文件就解决了!

原来的写法:

public void test42() throws IOException {
	String fileName = "D:\\Logs\\MMS\\upload_9e6610d5_e516_4902_81ed_374763055092_00000000.tmp";
	java.io.File file = new java.io.File(fileName);
	BufferedReader reader = null; 
        try {
            System.out.println("以行为单位读取文件内容,一次读一整行:");
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;
            int line = 1;
            // 一次读入一行,直到读入null为文件结束
            while ((tempString = reader.readLine()) != null) {
                // 显示行号
                System.out.println("line " + line + ": " + tempString);
                line++;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
	}

更改后的写法:

public void test42() throws IOException {
	String fileName = "D:\\Logs\\MMS\\upload_9e6610d5_e516_4902_81ed_374763055092_00000000.tmp";
	java.io.File file = new java.io.File(fileName);
	FileInputStream fis = new FileInputStream(file);
	InputStreamReader isr = new InputStreamReader(fis, "UTF-8");   
	BufferedReader br = new BufferedReader(isr); 
        try {
            System.out.println("以行为单位读取文件内容,一次读一整行:");
            String tempString = null;
            int line = 1;
            // 一次读入一行,直到读入null为文件结束
            while ((tempString = br.readLine()) != null) {
                // 显示行号
                System.out.println("line " + line + ": " + tempString);
                line++;
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e1) {
                }
            }
        }
	}

乱码的问题很多时候都是出现在读取的时候没有规定编码或者读与取使用了不一样的编码,所以出现乱码可以先查看读取到编码是不是使用了不一样的编码。

然后发现每次修改完csv文件后,都会默认键csv文件保存为 ANSI 编码格式,但是我们的项目是用统一用UTF-8的,所以upload就出现乱码了。
用notepad++吧csv文件的保存格式修改为UTF-8后,就没有出现乱码了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值