我试图保存一个节点实体(@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
选项的情况下保存多字节字符串?
我认为最好在配置文件中或通过编码指定编码。
感谢。
我的环境就在这里。
答案 0 :(得分:0)
这是ogm中的一个已知问题 - https://github.com/neo4j/neo4j-ogm/issues/244。
当前建议的解决方法正是您所做的 - 在启动时提供属性
-Dfile.encoding=UTF-8