如何在mysqldb中插入和选择希腊词汇
我创建了一个数据库,使用的是Mysqldb。
我想插入和选择一些字符类型的数据,这些字符是希腊语的。
我已经把数据库的字符集设置为utf-8_general_ci,但是当我插入一个希腊单词时,看到的却是一些奇怪的字符。然后我用Python去选择这个表里的行,结果是这个 (1,??????)
。
有人能帮我吗?谢谢!
2 个回答
2
你是在Python这边使用unicode吗?
关键是要在你的连接参数中加上charset="utf8",并且设置use_unicode=True。来源
db = MySQLdb.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_NAME, charset="utf8", use_unicode=True)
需要注意的是,在Python 3中,unicode字符串是常规的,而在之前的版本中,unicode字符串和普通字符串是两种不同的东西。
2
可能是你的编码设置有问题,确保在Python中设置为utf8,并尝试设置数据库:
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")