2010-04-13 56 views
2

好吧,主題說了這一切,但我會進一步解釋一下。從jdbc/SQL Server 2005中讀取希臘文本並用servlet顯示它

我有一個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),但仍沒有運氣!

如何才能看到希臘字符?

回答

1

問題可能出現在多個位置。檢查他們都:

  • 數據庫編碼
  • 連接編碼
  • 響應編碼(response.setCharacterEncoding("utf-8")
+0

問題出在響應編碼。添加行response.setContentType(「text/html; charset = utf-8」);解決了問題! – Serafeim 2010-04-14 07:39:52

1

您需要設置response encodingUTF-8

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

另見this article更多的背景信息,以及所有你需要的其他方面:由於您通常使用JSP用於顯示數據,您可以通過將下面一行在JSP頁面的頂部做到這一點同時考慮到Java EE Web應用程序。

+0

我使用的是servlet而不是JSP,但是關於unicode的文章非常棒! – Serafeim 2010-04-14 07:40:31