首页 > 解决方案 > 如何使用 cypher-shell (Windows) 将包含变音符号的密码脚本 (UTF-8) 通过管道传输到 neo4j?

问题描述

Cypher 脚本“Umlauts.cypher”(UTF-8,在 Windows 环境中创建)包含一个用于导入包含一些变音符号的“变音符号对象”的事务:

:BEGIN
CREATE(:Umlautobj{text:"ÄäÖöÜü"});
:COMMIT

对于管道脚本(Windows 环境),在 cmd-shell 中使用以下代码

TYPE Umlauts.cypher|cypher-shell.bat -u neo4 - p secret

现在,我尝试使用 Cypher-Query(Firefox-Browser) 从新节点获取文本信息:

MATCH (n:Umlautobj) RETURN n.text

我得到:

“ÄäÖöÜü”

但我希望得到:

“ÄäÖöüü”

如何正确导入变音符号?

【Windows 10、neo4j-community 3.5.15、neo4j-DB在同一台机器上】

标签: neo4jcypher-shell

解决方案


我遇到了同样的问题并正在寻找解决方案。找不到任何东西,所以编写一个小的 python 脚本来解决这个问题。

    from py2neo import Graph
    neo_url = 'http://neo4j:password@localhost:7474/db/data'
    graph = Graph(neo_url)
    file_name = "test.cypher"

    with open(file_name, encoding="utf8") as file_in:
        query = ""
        for line in file_in:        
            if line.strip().lower() == ":begin" or line.strip().lower() == ":commit":
                continue

            query += line
            if line.strip()[-1] == ";":
                graph.run(query)
                query = ""

推荐阅读