2012-10-01 82 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

与我合作愉快 –