2014-01-24 72 views
0

我有一個csv文件。我需要使用jsp在html表格中顯示csv文件內容。我使用open csv編寫了所需的代碼。是的,它已成功顯示在HTML表格中。但是一些神祕的字符代替「-?- 1 -?-」代替「- 1-」,這些問號是不必要的。轉換爲ANSI

我曾試圖轉換值以下列方式爲ANSI,消除神祕人物條目:

csvReader = new CSVReader(reader); 
int rowCount = 1; 
while ((line = csvReader.readNext()) != null) { 
%> 
<tr> 
<td class="heading" width="30"><%=rowCount%></td> 
<% 
for (int i = 0; i < line.length; i++) { 
    if (rowCount == 1) { 
    %> 
    <td class="ex-headding" width="120"><strong><%=line[i]%></strong></td> 
    <% 
    } else { 
     //this is the code to convert into ansi 
     String utf = line[i]; 
     byte[] data = utf.getBytes("ASCII"); 
     line[i] = new String(data); 
    %> 
    <td><%=line[i]%></td> 
    <% 
    } 
} 
%> 

但問題仍然存在。是轉換的正確方式進入ANSI

回答

0

也許你有類似

<%@page pageEncoding="ISO-8859-1"%> 

這是官方的Latin-1。使用:

<%@page pageEncoding="Windows-1252"%> 

這是Windows Latin-1的一些更特殊的字符。 所有的瀏覽器都將ISO-8859-1解釋爲Windows-1252(也是MacOSX,Linux),而HTML 5甚至以這種方式規定了它。只有java是嚴格的。

因此,你可以保持HTML:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

問號給出,當原來的Unicode字符不能在輸出字符集表示。

如果字符仍然不可表示,請切換到「UTF-8」。這絕對是未來,由多語言世界和當前的Unicode基礎驅動。


由於這是不是原因: 檢查CSV文件的編碼。例如JEdit。然後將編碼添加到CSVReader構造函數中。

確保我們有正確的字符串開頭。

+0

我嘗試了以上所有可能的方式,它不工作。 Iam實際在Linux中部署代碼。 – user3173486

+0

擴展了答案,指責了CSVReader。雖然你可能已經(記錄)檢查。 –