2012-05-17 165 views
1

我在嘗試在數據庫中插入特殊符號(如英鎊字符(£或₤))時遇到問題。這些顯示爲?在前端像英鎊符號(£或₤)字符的URI編碼問題

我們在

URIEncoding="UTF-8" 

使用Tomcat作爲應用服務器,並有以下CONFIGRATION插入文本前DB我們要進行以下檢查

String Text = new String(request.getParameter("Text").getBytes("8859_1"),"UTF-8"); 

我沒有太多關於上面的代碼的想法

但是,當我從tomcat server.xml刪除"URIEncoding="UTF-8",這些字符加載正常

根據http://confluence.atlassian.com/display/DOC/Configuring+Tomcat%27s+URI+encoding默認情況下,Tomcat使用"ISO-8859-1"編碼

任何人都可以在此幫助嗎?

由於提前

+0

除非您遇到GET參數問題,否則URIEncoding設置與此問題無關。 –

回答

3

你問的Tomcat給你格式化爲UTF-8的值,然後轉換是基於ISO-8859-1字符集代碼點的字節數組。然後,您將這些值直接轉換回UTF-8代碼點,這會導致字符出現亂碼。

只要刪除轉換的東西,離開你的配置URIEncoding="UTF-8"條目,它應該工作正常。

另外,請記住,您的輸出編碼很重要。如果您發送的是UTF-8編碼頁面,但在頁面元標記或Content-Encoding HTTP響應標題中設置了不同的編碼,則某些字符會出現亂碼結果。

+0

消除了滾動調試會話,這不是Stack Overflow的目的。 – casperOne

相關問題