Java使用opencsv导出CSV格式乱码处理

近期的项目需要导出日文的内容到CSV文件中,但是使用au.com.bytecode.opencsv.CSVWriter还是碰到了很多问题,首当其冲就是乱码的问题。在这个问题上,google一把以后到处都说是字符集使用”UTF-8″来处理,但是实际上这个操作并没有奏效,需要在这个基础之上增加BOM签名,然而加了之后依旧没有生效,包括中文处理也没有生效。乱码归咎起来都是字符集的问题。所以解决方案还是回到字符集上。下面是我解决导出日文时的处理方法,下面是一个例子。

[java]
package com.yneit.web.test;

import au.com.bytecode.opencsv.CSVWriter;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
* @author Created by yneit.com
* @since on 2016-11-14 21:49.
*/
public class Test {
//日文字使用符集
public static String UTF_16LE = "UTF-16LE";

public static void main(String[] args) throws IOException {
String path = "/com/yneit/web/test/test.csv";
String encoder = UTF_16LE;

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path), encoder);
CSVWriter writer = new CSVWriter(out, CSVWriter.DEFAULT_SEPARATOR, CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER, CSVWriter.DEFAULT_LINE_END);

String[] entries = {"fir", "リージョン", "人民", "ond,政府\"ird"};
if (entries.length > 0) {
//增加BOM签名
entries[0] = "\uFEFF" + entries[0];
}
writer.writeNext(entries);
writer.close();

System.out.println("over");
}
}

[/java]

 

参考博文:http://blog.csdn.net/a19881029/article/details/37959109

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据