如何在mysqldb中插入和选择希腊词

时间:2012-02-06 02:22:20

标签: python unicode utf-8 character-encoding mysql-python

我创建了一个数据库,我使用的是Mysqldb 我想插入并选择数据字符类型,并且字符是希腊语 我在utf-8_general_ci中设置了我的数据库的排序规则但是,当我插入一个希腊词时,我看到一些奇怪的字符,然后我尝试通过python选择这个表的行,结果是这个(1,??????)。 / p>

有人可以帮帮我吗?谢谢

2 个答案:

答案 0 :(得分:2)

您是否正在使用Python方面的unicode?

  

秘密成分是在你的连接中添加一个charset =“utf8”   参数和use_unicode = True。 Source

db = MySQLdb.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_NAME, charset="utf8", use_unicode=True)

请注意,继续向前,虽然在Python 3中Unicode字符串是常态,但在早期版本中,unicode字符串和字符串是不同的东西。

答案 1 :(得分:2)

你的编码可能有问题,请确保在python中设置utf8,并尝试设置db:

set character_set_database = utf8;
set character_set_server = utf8;
set character_set_system = utf8;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;
set names utf8;

或使用希腊字符集: - )

的Python:

db = MySQLdb.connect(host="localhost",
use_unicode = True, charset = "utf8",
user=username, passwd=password, db=database)

然后要输出,您需要指定字符串是Unicode:

print (yourStringFromDatabase).encode("iso-8859-1")