Weblogic DB2 数据显示为"?????"问号



我正在为本地服务器和开发服务器运行带有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-如何正确输入字符

最新更新