2012-10-01 84 views
3

我有一個簡單的Web應用程序,它由Servlet和JSP組成。在一個JSP中,輸入的數據被髮送到一個Servlet,Servlet與後端交互以將數據保存在DB(MySQL)中。阿拉伯編碼

我的問題是數據是阿拉伯語,因此我設置了UTF-8編碼的頁面指令,並添加了一個過濾器,以將請求和響應編碼設置爲utf-8,但我仍然從JSP獲取垃圾數據到Servlet。

請注意,我使用的是Apache Tomcat Server v6.0,你有什麼想法,我的問題在哪裏?

+0

可能是HTML表單的問題。你可以發佈代碼嗎?另外,您是否確認問題不在數據庫中?試試這個:把一個硬編碼的阿拉伯字符串放到你的Java代碼中,保存到數據庫中,看看它是否出現亂碼。 –

回答

3

默認情況下,Tomcat在解碼從瀏覽器接收到的URL時使用ISO-8859-1字符編碼。你必須確保你的tomcat的server.xml的文件連接器元件具有的URIEncoding屬性,該屬性值是UTF-8

<Connector port="8080" 
      protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      URIEncoding="UTF-8" 
      redirectPort="8443"/> 

以獲取更多信息看here

0

確保文本以unicode保存到數據庫,而不是字符串。然後在顯示時將其編碼爲utf-8。

0

1-轉到:方案 - > neatbans - > neatbeans.config,再加入這行中它:
netbeans_default_options=" .... -J-Dfile.encoding=UTF-8"

2-轉到服務器(GlassFish的)的控制檯 - >配置 - >服務器 - 在這個博客 <property name="URL" value="jdbc:mysql://localhost:3306/chokrbd?characterEncoding=UTF-8"/>

更多deatils:配置 - - > JVM選項>添加JVM選項,再補充一點: -Dfile.encoding=UTF-8 and save

3-數據集的更改主機

+0

與我合作愉快 –