MySQLdb / Python:无法在db中插入某些字符

时间:2012-11-09 21:39:48

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

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import MySQLdb

conn = MySQLdb.connect('localhost', 'django_user', 'haha123', 'mydb')
cur = conn.cursor()

f = open('/home/kave/projects/cb/database/country_code_drupal_nov_2011.txt')

cur.execute("INSERT INTO myapp_app_currency (currency) VALUES ('USD - $'),('EUR - €'), ('GBP - £'), ('CAD - $'), ('AUD - $'), ('BRL - R$');")

出于某种原因,我可以将此数据成功插入到我的数据库中,但是有两个条目已损坏。

EUR - € becomes EUR - €
GBP - £ becomes GBP - £

我以为我把它设置为utf8并且它应该滚动,为什么只有这两个字符出现问题?

1 个答案:

答案 0 :(得分:3)

尝试在连接数据库时设置charset:

conn = MySQLdb.connect('host', 'usr', 'pass', 'db', charset='utf8')

在文档中使用# -*- coding: utf-8 -*-时,它仅适用于源代码文档,不适用于