クエリされたデータを 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 中国語 Web サイトの他の関連記事を参照してください。