2011-08-23 122 views
0

我使用UTF8編碼的MySQL5.1作爲字段customer_name。 但是,在UTF-8的JSP頁面(以各種方式,meta標籤等),它看起來是錯誤的。MySQL-UTF8到HTML轉換問題

在數據庫中,我看到:"Alѐ"

但在JSP它呈現爲:"AlÑ "

這是相同的,當我查詢:

select binary(name) from customer where customerID=X; 
"AlÑ؀" 

顯然,最後一個字符從該查詢不能在JSP上顯示。 我無法確定哪裏出錯。 從查詢結果RowSet中,我用普通的rs.getString(「name」)檢索Java字符串。 我試着將MySQL變量character_set_connection設置爲utf8(是latin1),但沒有任何區別。它一定是一些非常微不足道的東西。

+1

你有沒有正確設置名稱? http://stackoverflow.com/questions/2159434/set-names-utf8-in-mysql – nonouco

+0

我應該檢查字符串是否順利從MySQL到Java內存。當您執行rs.getString(「name」)時,檢查該String.codePointAt(2)是否等於232(0xE8)。 – helios

+0

如果不是,請嘗試規範化字符串(UTF有兩種方法來表示重音字符):'Normalizer.normalize'。查看http://download.oracle.com/javase/6/docs/api/java/text/Normalizer.html瞭解更多信息。 – helios

回答

0

你已經檢查過你在數據庫中有utf-8編碼,爲html頁面設置了UTF-8字符集,而從java中連接了utf-8設置了mysql,是嗎?

所以最後要檢查的是,如何從DB中檢索值?你還沒有提到任何ORM?>