2016-03-21 18 views
0

我有一个客户要求支持将由用户(中文,日文等)输入的UTF-8数据保存到我们的应用程序数据库并按原样显示它们。 为此,我更改了我的数据库字符集并更新了我的JDBC连接字符串以支持UTF-8数据处理。完成这个设置后,我成功地将中文存储在我的数据库中,并将其显示在我的应用程序UI中。UTF-8数据请求在生产中的问题

但在我的生产服务器上,我遇到了这个问题。我在生产系统上进行了调查,发现我在我的生产应用程序界面中输入的字符,例如“你叫什么名字”被转换为“????????????????? ???????????????????????当我的生产应用程序收到请求。虽然当我在本地机器上运行相同的东西,我收到的字符,因为它是,即如果我输入“你叫什么名字”在UI中,我得到“你叫什么名字”在请求数据以及在我的家庭系统上。

在我生产中的应用部署在tomcat7和CentOS操作系统,而我的本地机器(开发环境)是Windows 7下,Tomcat 7

难道这引起了Tomcat配置一些问题?或者是它的一些在OS中设置?

请提出这可能是错误的?

+2

你在server.xml中检查了Tomcat7的URIEncoding设置吗?它应该设置为UTF-8。 –

+0

你确实似乎有编码问题。您必须始终记住,根据特定的编码方案,每个字符序列都是对基础字节序列的*解释*。已经有很多这样的编码方案,并且还有几种常用的编码方案。如果处理链中的某个组件或机器根据与先前用于对其进行编码的不同编码解释字节序列,则可能会产生垃圾。但也许不是:一些字符,特别是Unicode的前128个字符,被许多编码以相同的方式进行编码。 –

+0

@JoshuaMoore:你的建议就像一个魅力:)。最后,问题已解决,我正在以UTF-8获得预期的字符输入。万分感谢。 – Raghav

回答

0

仔细检查Tomcat7的server.xml是否已将URIEncoding设置为UTF-8。这应该解决这个问题。