csv 일본어 코드 문제 해결
7884 단어 자바
일반적인 인 코딩 과 인 코딩 헤드 BOM:https://www.cnblogs.com/signheart/p/c3b1000186199e89d4e02c33f39ed418.html
난 코드 문 제 는 매우 골 치 아 프 고,일본어 의 난 코드 문 제 는 더욱 골 치 아프다.상식 적 으로 일본 인 들 이 장인 정신 에 비해하지만 결 과 는 놀 라 웠 다.일본어 에 어 지 러 운 문 제 를 검색 한 결과 영어 와 중국어 가 가장 많이 나 왔 고 마지막 으로 일본어 가 나 왔 다.일본어 의 글 을 열 어 보 니 크게 놀 랐 다.가장 기본 적 인 테스트 사례 인 COPY 는 끝 난 셈 이 고 그들의 민족 정신 에 전혀 떳떳 하지 못 하 다.다시 돌 이 켜 보면 문 제 는 일본어 로 CSV 를 내 보 내 는 데 두 가지 문제 가 해결 되 어야 합 니 다.
구체 적 인 실현 은 코드 를 봅 시다.
package com.yneit.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import org.springframework.util.NumberUtils;
import org.supercsv.cellprocessor.FmtBool;
import org.supercsv.cellprocessor.FmtDate;
import org.supercsv.cellprocessor.constraint.LMinMax;
import org.supercsv.cellprocessor.constraint.NotNull;
import org.supercsv.cellprocessor.constraint.UniqueHashCode;
import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.io.CsvListWriter;
import org.supercsv.io.ICsvListWriter;
import org.supercsv.prefs.CsvPreference;
import au.com.bytecode.opencsv.CSVWriter;
/**
* CSV
*/
public class Test {
//
public static String UTF_16LE = "UTF-16LE";
public static String UTF_8 = "UTF-8";
public static void main(String[] args) throws IOException {
String path = "G:\\Project_Java\\MyProject\\src\\com\\yneit\\work\\test.csv";
String encoder = UTF_8;
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path), encoder);
out.write(0xFEFF);
CSVWriter writer = new CSVWriter(out, CSVWriter.DEFAULT_SEPARATOR,
CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
String[] entries = { "1", "fir", "リージョン", "6", " ", "ond, \"ird" };
String[] datas = new String[entries.length];
for (int i = 0; i < entries.length; i++) {
String item = Test.verityCell(entries[i]);
datas[i] = item;
}
writer.writeNext(datas);
writer.close();
System.out.println("over");
try {
Test.writeWithCsvListWriter();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* @return the cell processors
*/
private static CellProcessor[] getProcessors() {
final CellProcessor[] processors = new CellProcessor[] { new UniqueHashCode(), // customerNo
// (must
// be
// unique)
new NotNull(), // firstName
new NotNull(), // lastName
new FmtDate("dd/MM/yyyy"), // birthDate
new NotNull(), // mailingAddress
new Optional(new FmtBool("Y", "N")), // married
new Optional(), // numberOfKids
new NotNull(), // favouriteQuote
new NotNull(), // email
new LMinMax(0L, LMinMax.MAX_LONG) // loyaltyPoints
};
return processors;
}
/**
* An example of reading using CsvListWriter.
*/
private static void writeWithCsvListWriter() throws Exception {
// create the customer Lists (CsvListWriter also accepts arrays!)
final List
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.