쿼리 데이터를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!