我正在为本地服务器和开发服务器运行带有DB2 z/os和Unicode数据库的Weblogic 10.3.3。
当我在本地运行应用程序时,对数据库的查询会以问号的形式返回一些unicode数据,比如"????"。
这似乎发生在日本角色身上。
但是,如果我将代码部署到开发服务器上,代码就可以正常工作。我可以在本地浏览器中查看这些字符,它们就会显示出来。
以前有人见过这个吗?
我搞不清服务器之间有什么不同。驱动程序和数据源是相同的。
-Dfile.encoding=UTF-8
到您的Weblogic启动脚本。我在这个博客上找到了答案http://alexrogan.com/?p=126
您的代码在处理字符时显然依赖于平台默认编码。开发服务器似乎使用UTF-8,而您的本地开发似乎使用了不同的东西,例如Windows CP1252,它不支持日语字符。
为了相应地修复它,您需要将其添加到每个JSP:的顶部
<%@ page pageEncoding="UTF-8" %>
或者,当您使用Servlet发出HTML(或其他内容)时,您需要在调用getWriter()
之前添加它
response.setCharacterEncoding("UTF-8");
或者,当您使用JAX-RS时(正如我在您的一个标签中看到的那样),您需要将charset
附加到@Produces
内容类型。
@Produces("application/xml;charset=UTF-8")
另请参阅:
- Unicode-如何正确输入字符