2012-07-12 62 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