从jdbc / SQL Server 2005读取希腊语文本并使用servlet显示它

时间:2010-04-13 14:45:37

标签: java sql-server unicode servlets jdbc

嗯,主题说了这一切,但我会进一步解释。

我在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),但仍然没有运气!

我能做些什么才能看到希腊字符?

2 个答案:

答案 0 :(得分:1)

问题可能出在多个地方。检查一下:

  • 数据库编码
  • 连接编码
  • 响应编码(response.setCharacterEncoding("utf-8")

答案 1 :(得分:1)

您需要将response encoding设置为UTF-8。由于您通常使用JSP来显示数据,因此可以通过在JSP页面的顶部放置以下行来完成此操作:

<%@ page pageEncoding="UTF-8" %>

另请参阅this article以获取更多背景信息以及Java EE Web应用程序需要考虑的所有其他方面。