我有一个csv文件。我需要使用jsp在html表中显示csv文件内容。我用open csv写了一个想要的代码。是的,它成功地显示在html表中。但是一些神秘的角色在“-?- 1 -?-
”的位置显示为“- 1-
”,而这些问号是不必要的。
我曾尝试通过以下方式将值转换为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 :(得分:0)
可能你有像
这样的东西<%@page pageEncoding="ISO-8859-1"%>
哪个是官方拉丁文-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构造函数。
这确保我们开始使用正确的字符串。