MySQL数据库的默认编码已经设置为utf8了,在python程序内也已经把字符串的编码转换成了utf8,可是通过MySQLdb插入数据库后,显示的还是一堆乱码。
后来发现是建立数据库连接时的问题:
conn = MySQLdb.connection(host="localhost", user="root", passwd="password", use_unicode=True, charset="utf8") |
之前在获得数据库连接时,没有写后面红色部分两个参数,以为数据库默认编码和字符串编码都为utf8,就能正确插入为utf8的字符串了。
添加了红色部分的参数后,正常插入,问题解决。
P.S. 在插入数据库时一定要注意字符串中的单引号,因为MySQL数据库中单引号为特殊字符,若原始数据中含有单引号,必须连写两个才能正确插入。如 Aaron's book, 插入数据库时应写为 Aaron''s book