DataNucleus JDO应用程序的UTF-8字符编码问题(公开MySQL数据库)
我有一个DataNucleus JDO web应用程序,它将MySQL数据库表作为web服务公开。其中一个表行包含俄语文本。当web服务返回该行时,该文本显示为 以下是我到目前为止所做的尝试:DataNucleus JDO应用程序的UTF-8字符编码问题(公开MySQL数据库),mysql,jdbc,jdo,datanucleus,Mysql,Jdbc,Jdo,Datanucleus,我有一个DataNucleus JDO web应用程序,它将MySQL数据库表作为web服务公开。其中一个表行包含俄语文本。当web服务返回该行时,该文本显示为 以下是我到目前为止所做的尝试: 我已经确认MySQL数据库表中的数据实际上是正确编码的。在MySQL Workbench中查看数据时,数据显示正确 我尝试用Java编写一个小型MySQL客户端,它只需连接到数据库并打印出行。起初,我收到了类似的输出(所有?)。然后,我尝试使用JVM参数运行客户机,-Dfile.encoding=UTF-
-Dfile.encoding=UTF-8
,它成功了-Dfile.encoding=UTF-8
添加到catalina.bat中的JAVA_OPTS中,但没有任何变化?useEncoding=true&;characterEncoding=UTF-8
连接到连接url,当我尝试访问web服务时,我一直收到以下NullPointerException错误:
java.lang.NullPointerException
org.datanucleus.api.rest.RestServlet.doGet(RestServlet.java:271)
javaservlet.http.HttpServlet.service(HttpServlet.java:621)
javaservlet.http.HttpServlet.service(HttpServlet.java:728)我现在没有主意了。我一直很小心地确保在支持UTF-8编码的介质中查看任何输出。我对DataNucleus和JDO API没有太多的经验,所以我想知道我是否遗漏了一些与之相关的内容。对于选项4,这就是您所拥有的日志,您指的是哪个日志?您使用的是DataNucleus,所以让我们尝试一下;-)我已经隔离了ApacheJDO的问题,而不是DataNucleus的问题。当我在DataNucleus项目中使用Jersey构建RESTful web服务时,编码被正确处理。不,我停止使用JDO并创建了自己的web服务来解决这个问题。