2012-07-12 60 views
2

我正在使用neo4jclient。当我尝试创建/更新节点时,像äöü这样的特殊字符被替换为 。 我是否必须设置特定的http标头,如内容类型,内容编码?如果是的话,什么样的标题和这个标题的价值是什么?Neo4j REST编码

谢谢。

编辑: 这是请求的样子:

POST http://...........:7474/db/data/batch HTTP/1.1 

Accept: application/json;stream=true 

User-Agent: RestSharp 103.1.0.0 

Content-Type: application/json 

Host: ............:7474 

Content-Length: 267 

Accept-Encoding: gzip, deflate 


[ 

    { 

"method": "POST", 
"to": "/node", 
"body": { 
    "Name": "äöü", 
    "State": "Active", 
    "Id": 0, 
    "CreateDate": "2012-07-12T18:48:45.3343526+02:00", 
    "ChangeDate": "0001-01-01T00:00:00+00:00" 
}, 
    "id": 0 
    } 
] 

或者是错误的批处理执行?如果是的话,我会很快需要修复:)

回答

3

现在,它的工作原理

分析,我们发现了messages.log后,该的file.encoding是不是UTF-8。

- > DEBUG [neo4j.diagnostics]:file.encoding的= 的Cp1252

所以我们在Neo4j的-wrapper.conf文件中设置该属性:

wrapper.java.additional.3 = -Dfile.encoding = UTF-8

现在工作! :)

感谢我的兄弟!总是对Java开发人员有好处。 :)

+0

这帮助我找到了一个问题,在Mac OS上运行neo4j项目的单元测试,其中messages.log表示'DEBUG [neo4j.diagnostics]:file.encoding = MacRoman'。由于这是使用neo4j临时嵌入,而不是编辑一个不存在的'neo4j-wrapper.conf',修正是将此配置添加到'maven-surefire-plugin':' -Dfile.encoding = UTF-8 ' – Stewart 2013-08-20 09:18:47

+0

此主题也可能有用:https://github.com/neo4j-contrib/rabbithole/issues/25 – Stewart 2013-08-20 09:20:20

0

在代码库中有这方面的测试,所以它应该被正确处理,请参阅https://github.com/neo4j/community/blob/master/server/src/functionaltest/java/org/neo4j/server/rest/BatchOperationFunctionalTest.java#L322。但是,客户端可能存在编码问题?

+0

Okey。我用小提琴做了一些测试,并再次遇到同样的问题。所以这不是neo4jclient问题,或者是我的客户端应用程序中的问题。 非常奇怪.. – user1401611 2012-07-13 10:59:19

+0

今天下载了最新的neo4j版本,但仍然是同样的问题(与我的应用程序和小提琴手也一样)。 – user1401611 2012-07-13 16:09:39

+0

您可以尝试获取原始JSON请求,并将它们发布到Neo4j用户邮件列表中以跟踪此问题吗? – 2012-07-15 15:54:14