我有一个简单的Web应用程序,它由Servlet和JSP组成。在一个JSP中,输入数据以发送到Servlet,Servlet与后端交互以将数据保存在DB(MySQL)中。
我的问题是数据是阿拉伯语的,因此我使用UTF-8编码设置了page指令,并添加了一个过滤器来将请求和响应编码设置为utf-8,但我仍然从JSP获取垃圾数据Servlet。
请注意,我使用的是Apache Tomcat Server v6.0,您知道我的问题在哪里吗?
答案 0 :(得分: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了解详情。
答案 1 :(得分:0)
确保将文本作为unicode而不是字符串保存到数据库中。然后在显示时将其编码为utf-8。
答案 2 :(得分:0)
1-转到:程序 - &gt; neatbans - &gt; neatbeans.config,然后在其中添加此行:
netbeans_default_options=" .... -J-Dfile.encoding=UTF-8"
2-转到服务器控制台(glassfish) - &gt;配置 - &gt; server-config - &gt; JVM选项 - &gt;添加Jvm选项,然后添加:
-Dfile.encoding=UTF-8 and save
3-将数据集的主机更改为:
<property name="URL" value="jdbc:mysql://localhost:3306/chokrbd?characterEncoding=UTF-8"/>
此博客中的更多详情https://android-dev-go.blogspot.com/