我遇到了一个问题,我的 JSP 没有正确显示欧元符号等多种货币,我正在使用 JDBC 从 MySQL 检索信息,目前正在使用 tomcat v7.0.37。
起初我认为这可能是一个 tomcat 问题,所以我将 'URIEncoding="UTF-8' 添加到我的 server.xml 和 server.xml 的各个位置,但没有运气,知道问题可能是什么吗?
谢谢。
我遇到了一个问题,我的 JSP 没有正确显示欧元符号等多种货币,我正在使用 JDBC 从 MySQL 检索信息,目前正在使用 tomcat v7.0.37。
起初我认为这可能是一个 tomcat 问题,所以我将 'URIEncoding="UTF-8' 添加到我的 server.xml 和 server.xml 的各个位置,但没有运气,知道问题可能是什么吗?
谢谢。
为了让所有字符都能正常打印,您必须确保 MySQL、jsp 文件和生成的 html 中的编码相同。如果您选择的编码是 UTF-8,那么 MySQL 表必须是 UTF-8,jsp 文件应该是用 UTF-8 编写的,并且在进入浏览器的 html 中必须有一个标签,如:<meta http -equiv="Content-Type" content="text/html; charset=UTF-8" />
发现问题出在哪里,我从数据库中获取的数据是 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;
尝试将此指令添加到 JSP 页面
<%@ page contentType="text/html; charset=UTF-8" %>