Java字符编码问题,在JSP中无法正确显示的货币

时间:2013-05-16 11:59:29

标签: java jsp tomcat character-encoding

我遇到的问题是我的JSP没有正确显示许多货币,如欧元符号,我使用JDBC从MySQL检索信息,目前正在使用tomcat v7.0.37。

起初我认为它可能是一个tomcat问题,所以我将'URIEncoding =“UTF-8'添加到我的server.xml和server.xml中的各个位置,但没有运气,任何想法可能是什么问题?

感谢。

3 个答案:

答案 0 :(得分:0)

为了打印al字符,你必须确保MySQL,jsp文件和生成的html中的编码是相同的。如果您选择的编码是UTF-8,那么MySQL表必须是UTF-8,jsp文件应该是用UTF-8编写的,并且在进入浏览器的html中必须有如下标记: < meta http-equiv =“Content-Type”content =“text / html; charset = UTF-8”/>

答案 1 :(得分:0)

发现问题是什么,我从数据库获取的数据是clob数据类型,我将clob转换为字符串的方式导致下面的编码问题是我的代码是第一个。

Clob clob=resultSet.getClob(1);

Reader reader = clob.getCharacterStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
int c;
  while ((c = reader.read()) != -1) {
            out.write(c);
 }
 reader.close();
 out.close();
 return out.toString();

我改变了通过在clob上执行子字符串将clob转换为字符串的方式并修复它。

Clob clob=resultSet.getClob(1);

String outString= clob.getSubString(1l, (int)clob.length());
return outString; 

答案 2 :(得分:0)

尝试将此指令添加到JSP页面

<%@ page contentType="text/html; charset=UTF-8" %>