2011-06-15 11 views
0

數據來自Flex中的UTF格式,但是當我們導出到csv文件時,它已損壞。如果我們在記事本++中打開相同的csv文件,editplus會顯示正確的字符。 - 有japanses和韓國字符。如果我們將數據從JSP導出到csv文件,則UTF字符爲垃圾

for是我們正在使用的代碼片段。請告訴我們,在出口的情況下,我們可以處理不同的語言。 我們已經用java編寫了演示應用程序,它是工作文件。

我們已經把UTF8 + BOM,該文件可以在csv中正常打開。 (這是來自Java代碼),但如果我們嘗試從jsp頁面添加它,它不起作用。

<% 
    MxHtmlUtil.jspInitScript(request, response); 
    response.setContentType("application/csv; charset=UTF-8"); 
    response.setHeader("content-disposition", "attachment; filename=multi-cms-search.csv"); 

    if (request.getParameter("content") != null) 
     out.println(request.getParameter("content")); 
%> 

添加bom如下,但不工作在jsp頁面,它在java代碼中工作正常。

out.print("\ufeff"); 
    out.println(request.getParameter("content")); 

回答

0

JSP是一種視圖技術,用於生成和發送HTML輸出,而不是其他文件格式。 <% %>以外的所有空白和換行符都是發送到輸出。它可能已經破壞了一個和另一個。

從JSP中刪除所有空白,或者更好地將所有Java代碼放入普通的Java類中。對於這個Servlet是完全適合的。

請注意,你也應該寫任何字節響應體之前調用

response.setCharacterEncoding("UTF-8"); 

。它指示編寫者使用什麼charset將寫入的字符轉換爲響應主體中的字節。