我有一個簡單的Web應用程序,它由Servlet和JSP組成。在一個JSP中,輸入的數據被髮送到一個Servlet,Servlet與後端交互以將數據保存在DB(MySQL)中。阿拉伯編碼
我的問題是數據是阿拉伯語,因此我設置了UTF-8編碼的頁面指令,並添加了一個過濾器,以將請求和響應編碼設置爲utf-8,但我仍然從JSP獲取垃圾數據到Servlet。
請注意,我使用的是Apache Tomcat Server v6.0,你有什麼想法,我的問題在哪裏?
我有一個簡單的Web應用程序,它由Servlet和JSP組成。在一個JSP中,輸入的數據被髮送到一個Servlet,Servlet與後端交互以將數據保存在DB(MySQL)中。阿拉伯編碼
我的問題是數據是阿拉伯語,因此我設置了UTF-8編碼的頁面指令,並添加了一個過濾器,以將請求和響應編碼設置爲utf-8,但我仍然從JSP獲取垃圾數據到Servlet。
請注意,我使用的是Apache Tomcat Server v6.0,你有什麼想法,我的問題在哪裏?
默認情況下,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。
確保文本以unicode保存到數據庫,而不是字符串。然後在顯示時將其編碼爲utf-8。
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-數據集的更改主機
與我合作愉快 –
可能是HTML表單的問題。你可以發佈代碼嗎?另外,您是否確認問題不在數據庫中?試試這個:把一個硬編碼的阿拉伯字符串放到你的Java代碼中,保存到數據庫中,看看它是否出現亂碼。 –