>  기사  >  Java  >  Java를 사용하여 내보낸 CSV 파일의 문자가 깨지는 문제를 해결하는 방법

Java를 사용하여 내보낸 CSV 파일의 문자가 깨지는 문제를 해결하는 방법

尚
원래의
2019-12-28 16:29:512445검색

Java를 사용하여 내보낸 CSV 파일의 문자가 깨지는 문제를 해결하는 방법

쿼리 데이터를 xls 파일(UTF-8 인코딩)로 내보낼 때는 데이터가 정상이지만, CSV 파일로 내보낼 때 파일의 중국어 왜곡 문자도 UTF-8로 인코딩됩니다. GBK 인코딩을 사용하면 중국어 디스플레이가 정상입니다. (권장사항: java 비디오 튜토리얼)

해결책:

CSV 모드로 내보낸 파일에는 기본적으로 BOM 정보가 포함되어 있지 않습니다. 출력할 콘텐츠에 대한 BOM 식별(EF BB BF로 시작하는 바이트 스트림)을 설정합니다. , 그러면 문제가 해결될 것입니다. 구체적인 방법은 다음과 같습니다.

...
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(response.getOutputStream(), "UTF-8");  
// 要输出的内容  
result = (String)contentMap.get(RESPONSE_RESULT);  
response.setHeader("Content-Disposition", "attachment;filename=test.csv");  
outputStreamWriter.write(new String(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF}));  
outputStreamWriter.write(result);  
outputStreamWriter.flush();

OutputStream 스트림으로 구현하는 경우 매개변수는 다음과 같이 수정할 수 있습니다.

out = response.getOutputStream();     
//加上UTF-8文件的标识字符      
out.write(new byte []{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});

더 많은 Java 지식을 보려면 java 기본 튜토리얼 칼럼을 주목하세요.

위 내용은 Java를 사용하여 내보낸 CSV 파일의 문자가 깨지는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.