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

4 投票
2 回答
816 浏览
提问于 2025-04-17 12:24

我创建了一个数据库,使用的是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")

撰写回答