我创建了一个数据库,我使用的是Mysqldb
我想插入并选择数据字符类型,并且字符是希腊语
我在utf-8_general_ci中设置了我的数据库的排序规则但是,当我插入一个希腊词时,我看到一些奇怪的字符,然后我尝试通过python选择这个表的行,结果是这个(1,??????)
。 / p>
有人可以帮帮我吗?谢谢
答案 0 :(得分:2)
您是否正在使用Python方面的unicode? p>
秘密成分是在你的连接中添加一个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")