Python unicode与utf-8
我正在构建一个字符串查询(cypher查询)来对数据库(Neo4J)执行它 我需要连接一些字符串,但我在编码方面遇到了问题。 我正在尝试构建一个unicode字符串Python unicode与utf-8,python,unicode,utf-8,repr,Python,Unicode,Utf 8,Repr,我正在构建一个字符串查询(cypher查询)来对数据库(Neo4J)执行它 我需要连接一些字符串,但我在编码方面遇到了问题。 我正在尝试构建一个unicode字符串 # -*- coding: utf-8 -*- value = u"D'Santana Carlos Lãnez" key = u"Name" line = key + u" = "+ repr(value) print line.encode("utf-8") 我希望: Name=“D'Santana Carlos Lãnez
# -*- coding: utf-8 -*-
value = u"D'Santana Carlos Lãnez"
key = u"Name"
line = key + u" = "+ repr(value)
print line.encode("utf-8")
我希望:
Name=“D'Santana Carlos Lãnez”
但我得到:
Name=u“D'Santana Carlos L\xe3nez”
我想,
repr
正在返回一个unicode。或者我可能没有使用正确的函数 value
已经是unicode,因为您在u“…”中使用前缀u
,所以不需要repr()
(和unicode()
或decode()
)
此外,repr()
不会转换为unicode。但它返回的字符串对调试非常有用-它显示本机字符的十六进制代码和其他内容。Python literal(repr
)语法不是Cypher string literal语法的有效替代品。前导的u
只是它们之间的区别之一;值得注意的是,Cypher字符串文本没有\x
转义符,Python将对U+0080–U+00FF之间的字符使用这种转义符
value = u"D'Santana Carlos Lãnez"
key = u"Name"
line = key + u" = "+ value
print(line)
如果需要从Python字符串创建密码字符串文本,则需要编写自己的字符串转义函数来写入输出匹配。但通常应避免从变量输入创建查询。与SQL数据库一样,更好的答案是。Uhh,您使用repr的目的是什么line=key+u“=”+value
。我正在使用repr
将字符用作反斜杠和引号。是的,我问你为什么这样做。因为我想将此字符串发送到数据库(Neo4j)。所以我需要用引号或单引号括起来。谢谢!我试图使用查询参数化,但我使用的是py2neo,我的查询更复杂。我正在进行批量加载,因此无法使用查询参数化资源。