簡體   English   中英

使用Java從網頁導出日語字符后,日語字符顯示不正確

[英]Japanese characters not displayed correctly after exporting them from webpage using Java

我有一個豐富的頁面,您可以在其中將數據表的內容導出到csv,xls,xml或pdf文件。 我在導出日語字符時遇到問題。

テスト商品等字符在導出文件(所有格式)中均顯示為テスト商品

但是,其他字符(例如シャツ)將正確顯示。 該應用程序已部署在tomcat和Websphere上,此問題僅在websphere實例上發生。

我嘗試在Websphere上為通用JVM參數添加-Dclient.encoding.override = UTF-8,但這並不能解決問題。 我還嘗試在encoding.properties文件中將日語的編碼更改為UTF-8,但這也沒有解決。

這是用於導出到csv的Java代碼的示例:

//response in an HttpServletResponse
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-disposition","attachment; filename=workbook.csv");
StringBuffer txtBuffer = new StringBuffer();
ServletOutputStream out = response.getOutputStream();
DataExporter.getCSVWorkbook(lstToBeExported, txtBuffer);
byte[] bytes = txtBuffer.toString().getBytes("UTF-8");
out.write(bytes);
out.close();

有誰知道為什么它適用於某些字符而不適用於其他字符,為什么它適用於tomcat但不適用於websphere?

在將字符從瀏覽器傳輸到服務器之前,我添加了一個過濾器來對字符進行編碼,從而解決了該問題。 問題在於它們在到達服務器之前被錯誤地編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM