使用多字节字符

时间:2017-04-27 12:27:47

标签: neo4j spring-data-neo4j neo4j-ogm

我试图保存一个节点实体(@NodeEntity),其属性(字符串类型)  有像日语一样的多字节字符串,但发生了JsonParseException。

java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 start byte 0x8d at [Source: [B@569cfc36; line: 1, column: 67]
    at org.neo4j.ogm.drivers.bolt.request.BoltRequest.executeRequest(BoltRequest.java:175) ~[neo4j-ogm-bolt-driver-2.1.2.jar!/:na]
    at org.neo4j.ogm.drivers.bolt.request.BoltRequest.execute(BoltRequest.java:89) ~[neo4j-ogm-bolt-driver-2.1.2.jar!/:na]
    at org.neo4j.ogm.session.request.RequestExecutor.executeSave(RequestExecutor.java:287) ~[neo4j-ogm-core-2.1.1.jar!/:na]
    at org.neo4j.ogm.session.request.RequestExecutor.executeSave(RequestExecutor.java:66) ~[neo4j-ogm-core-2.1.1.jar!/:na]
    at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:85) ~[neo4j-ogm-core-2.1.1.jar!/:na]
    at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:44) ~[neo4j-ogm-core-2.1.1.jar!/:na]
    at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:447) ~[neo4j-ogm-core-2.1.1.jar!/:na]

但是如果我使用-Dfile.encoding=UTF-8选项调用java,则正确保存实体......

请告诉我如何在没有-D=file.encoding选项的情况下保存多字节字符串? 我认为最好在配置文件中或通过编码指定编码。

感谢。

我的环境就在这里。

  • OS = Windows 7 64bit(日文版)
  • 爪哇= JDK1.8u121
  • Spring Boot = 1.5.2
  • Spring Boot Neo4j = 4.2.1
  • Noe4j Driver = Bolt Driver 2.1.2

1 个答案:

答案 0 :(得分:0)

这是ogm中的一个已知问题 - https://github.com/neo4j/neo4j-ogm/issues/244

当前建议的解决方法正是您所做的 - 在启动时提供属性

-Dfile.encoding=UTF-8