neo4j jdbc中文乱码

neo4j的jdbc连接实际上就是发送http请求(使用到了httpClient),对于中文而言,在插入数据时,jdbc用utf-8编码post提交,但是中文数据返回来的时候,并没有说明数据是utf-8的编码,因此httpClient会用平台的编码解析数据,如果平台编码是gbk等其他编码,好的情况下,可以将平台编码解析后的ResultSet,再用正确的编码解析数据;坏的情况下,在转存ResultSet时无法解析数据,直接抛个异常。

解决方案:

因为neo4j使用到了restlet处理请求,可以修改restlet的ClientResource的post方法,如下:

 /**
     * Posts a representation. If a success status is not returned, then a
     * resource exception is thrown.
     *
     * @param entity
     *            The posted entity.
     * @return The optional result entity.
     * @throws ResourceException
     * @see <a
     *      href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">HTTP
     *      POST method</a>
     */
    public Representation post(Representation entity) throws ResourceException {
        Representation r = handle(Method.POST, entity);
        r.setCharacterSet(CharacterSet.UTF_8);   //通过多次实验,neo4j只用到了这个post方法,其他post方法无需设置
        return r;
    }

然后在将改好的源码打成jar包,即可解决中文乱码问题。

打好包的jar:http://pan.baidu.com/s/152uia

时间: 2024-08-06 07:58:28

neo4j jdbc中文乱码的相关文章

jdbc 模糊查询和prepareStatement中文乱码解决方案

1.最近因为写J2EE版本的书店管理系统,碰到了模糊查询的问题:因为我查询的关键字是中文,导致刚开始出现了很多问题:ResultSet rs-> 比如: select * from book where bookName = '操作系统';明明这条语句是可以在mysql数据库中查到的,但是 rs.next()却始终未false;这很奇怪,我唯一能想到的原因就是中文乱码问题;果然经过查阅资料;找到了解决方法; 就是你在写URL时要加上编码的格式: ->this.URL = "jdbc:

各种中文乱码

为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程.汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了.    今天我写这个不是讲解中英文之间的差距,解码等,我是将我在这几年工作遇到各种各样的乱码的解决方法,总结一样,也希望大家能

解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" >     select t

jsp与servlet中文乱码问题(转)

大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考.首先了解一下Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦.原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题.首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流

解决openfire在使用MySQL数据库后的中文乱码问题(转)

openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据存储可以采用多种数据库,如MySQL,Oracle等. 在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制. 实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等.如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的

servlet中的中文乱码问题

老师总会说道:学完这个知识点,我们来谈谈中文乱码问题. 乱码的问题总是无处不在,处理不好会给用户带极差的用户体验. 那么我们来记录一下servlet中的乱码问题吧! 1.服务器向客户端响应时出现的乱码问题: response.setCharacterEncoding("UTF-8");  或者response.setContentType("text/html;charset=UTF-8"); 2.客户端向服务器提交数据时出现的乱码问题:1) Post方式提交数据设

spring boot 配置启动后执行sql, 中文乱码

spring.datasource.schema指定启动后执行的sql文件位置. 我发现中文乱码,原因是没有指定执行sql script encoding: spring: datasource: url: "jdbc:h2:mem:test" username: "sa" password: "" schema: database/import.sql sql-script-encoding: utf-8 type: com.alibaba.d

jsp之中文乱码问题

在eclipse里面我们的jsp页面如果我们写了中文,保存的时候会弹出一个框,让你选择保存方式,之所以这样是因为jsp默认的文件编码是ISO-8859-1字符集中无中文字符. 一个比较好的解决办法是在这个jsp页面的开头添加如下一句: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %> 就可以保存了,切在服务器运行了之后,再去页面浏览的时候也是正常

JSP开发过程遇到的中文乱码问题及解决方案

JSP开发过程遇到的中文乱码问题及解决方案 来源:偶my耶的博客 发布时间:2015-03-31 阅读次数:543 8 对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码. 1.数据库编码不一致导致乱码 解决方法: 首先查看数据库编码,输入: show variables like "%char%"; 确认编码一致,如果不一致,可输入: SET character_set_client='utf8'; SET character_set_connection='utf8'; S