python将unicode存储到mysql

时间:2013-02-21 18:47:44

标签: python unicode

将unicode存储到数据库时遇到问题。为了你的信息你=你..

>> a='你'
>>a <\br>
'\xc4\xe3'

问题是

 # -*- coding: utf-8 -*-
 import MySQLdb
 db = MySQLdb.Connect(host="127.0.0.1", port=3306, user="root", passwd="root",db="mydata", charset="utf8", use_unicode=True)

 cursor = db.cursor()

  insert = "insert into testing (english,chinese,frequency) values(%s,%s,1) on duplicate KEY UPDATE frequency=frequency+1;"
  a='你'
 data=('you',a)
 try:
    cursor.execute(insert,data) 
 except:
    print "error"

 db.commit()

这会给我一个错误,但是当我改成这个

data=('you','你')

它有效......

谁能帮助我?我需要使用“data =('you',a)”,因为稍后我将导入中文chracter文件

1 个答案:

答案 0 :(得分:2)

尝试告诉python将字符串视为unicode,如下所示:a= u'你'

如果您没有使用交互式提示,则可以通过unicode功能完成此操作。加载数据的一种方法示例如下:

fname = 'somefile.txt'
with open(fname,'r') as f
    unicode_data = unicode(f.read())

如果这不起作用,您应该可以在python文档中详细了解更多详细信息:http://docs.python.org/2/howto/unicode.html并且您可能会发现此SO答案有用:Character reading from file in Python