OrientDB的编码(不能发送文字字符串)

时间:2016-08-28 17:27:30

标签: python character-encoding orientdb

我有下一个问题。我需要使用propertyA创建一个顶点,其值为'المساء'。问题来自python,python CAN不能发送字符串'المساء'所以......

我知道我需要做一个编码,就像下一个:

>>>a = 'المساء'
>>>b = a.encode('cp270')
>>>print b
>>>'\x9f\xe9\xea\xab\x9f\x98'

但是使用此编码,OrientDB将无法正常工作。我想我需要一个ascii编码。

存在问题(没有回复): https://github.com/orientechnologies/orientdb/issues/5860

任何了解OrientDB的人都可以帮到我吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

我已尝试使用orientDb 2.2.7版本的代码

import pyorient 

db_name='MyDb'

print("connection to the server...")
client=pyorient.OrientDB("localhost",2424)
client.set_session_token(True)
session_id=client.connect("root","root")

client.db_open( db_name, "admin", "admin" )

myFunction = 'insert into v(name) values("المساء")'
client.command(myFunction);

client.db_close() 

它对我有用

enter image description here

希望它有所帮助。

答案 1 :(得分:0)

使用python我可以这样做:

>>> a = 'غريبديالى#مخيسةالعز'
>>> type(a)
<type 'str'>
>>> b = a.decode('utf8')
>>> b
u'\u063a\u0631\u064a\u0628\u062f\u064a\u0627\u0644\u0649#\u0645\u062e\u064a\u0633\u0629\u0627\u0644\u0639\u0632'
>>> print b
غريبديالى#مخيسةالعز

所以,如果我像下一个那样放一个查询,就会创建一个带有下一个结果的顶点:

query = 'create vertex v content {"property":"%s"}' %b

enter image description here