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

时间:2011-06-01 20:30:46

标签: java jdbc db2 jax-rs weblogic-10.x

我正在为本地服务器和开发服务器运行带有DB2 z / os和Unicode数据库的Weblogic 10.3.3。

当我在本地运行我的应用程序时,对数据库的查询将一些unicode数据作为问号返回,就像这样'??? ?? ???????”。

这似乎发生在日文字符上。

但是,如果我将代码部署到开发服务器,则代码可以正常工作。我可以在本地浏览器中查看这些字符并显示出来。

有没有人见过这个?

我无法弄清楚服务器之间有什么不同。驱动程序和数据源完全相同。

2 个答案:

答案 0 :(得分:2)

是的,我去过那里。你需要添加,

-Dfile.encoding=UTF-8

到您的Weblogic启动脚本。我在这个博客上找到了答案http://alexrogan.com/?p=126

答案 1 :(得分:0)

处理字符时,您的代码显然依赖于平台默认编码。开发服务器似乎使用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")

另见: