我正在为本地服务器和开发服务器运行带有DB2 z / os和Unicode数据库的Weblogic 10.3.3。
当我在本地运行我的应用程序时,对数据库的查询将一些unicode数据作为问号返回,就像这样'??? ?? ???????”。
这似乎发生在日文字符上。
但是,如果我将代码部署到开发服务器,则代码可以正常工作。我可以在本地浏览器中查看这些字符并显示出来。
有没有人见过这个?
我无法弄清楚服务器之间有什么不同。驱动程序和数据源完全相同。
答案 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")