嗯,主题说了这一切,但我会进一步解释。
我在MS SQL server 2005中有一个包含希腊文本的数据库。我创建了一个使用net.sourceforge.jtds.jdbc.Driver
连接到该数据库的servlet,并使用以下命令接收一些数据:
Connection con = DriverManager.getConnection(connectionUrl);
Statement sta = con.createStatement();
ResultSet res = sta.executeQuery("SELECT * FROM data");
之后,我想使用output.println
向页面显示数据。结果是希腊字符显示为问号(?)。我尝试更改浏览器的编码字符集,但没有运气,所以问题必须是页面。我也尝试过显示
new String( res.getBytes("text"), "ISO-8859-7");
而不是res.getString("text")
,使用不同的编码(UTF-8,UTF-16),但仍然没有运气!
我能做些什么才能看到希腊字符?
答案 0 :(得分:1)
问题可能出在多个地方。检查一下:
response.setCharacterEncoding("utf-8")
)答案 1 :(得分:1)
您需要将response encoding设置为UTF-8
。由于您通常使用JSP来显示数据,因此可以通过在JSP页面的顶部放置以下行来完成此操作:
<%@ page pageEncoding="UTF-8" %>
另请参阅this article以获取更多背景信息以及Java EE Web应用程序需要考虑的所有其他方面。