代码之家  ›  专栏  ›  技术社区  ›  Serafeim

从JDBC/SQL Server 2005中读取希腊文本并用servlet显示

  •  2
  • Serafeim  · 技术社区  · 15 年前

    好吧,这个主题说的都是,但我会进一步解释。

    我在MS SQL Server 2005中有一个包含希腊文本的数据库。我创建了一个servlet,它使用 net.sourceforge.jtds.jdbc.Driver 并通过以下命令接收一些数据:

    Connection con = DriverManager.getConnection(connectionUrl);
    Statement sta = con.createStatement(); 
    ResultSet res = sta.executeQuery("SELECT * FROM data");
    

    之后,我想用 output.println 将数据显示到页面。结果是希腊字符显示为问号(?).I尝试更改浏览器的编码字符集,但运气不佳,因此问题一定是页面。我也试着展示

    new String( res.getBytes("text"), "ISO-8859-7");
    

    而不是 res.getString("text") ,有不同的编码(utf-8,utf-16),但仍然没有运气!

    我该怎么看希腊字符?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Bozho    15 年前

    问题可能出现在多个位置。全部检查:

    • 数据库编码
    • 连接编码
    • 响应编码( response.setCharacterEncoding("utf-8") )
        2
  •  1
  •   BalusC    15 年前

    你需要设置 response encoding UTF-8 . 由于通常使用JSP来显示数据,因此可以将以下行放在JSP页面的顶部:

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

    另请参见 this article 对于更多的背景信息和所有其他方面,您也需要考虑到JavaEE Web应用程序。