python - 用python将西里尔字母写入mysql

标签 python mysql encoding

我有一个脚本可以解析txt文件中的数据(我认为是utf8),然后它应该将其写入mysql。 当我做类似的事情时:

cur.execute("insert into keywords (keyword) values ('%s')" % (u'RUSSIAN TEXT HERE'))

它做得很好(我的 mysqldb 中有俄语字符串),但是当我

f = open('/Users/aaaa/Desktop/keywords.txt', 'rw+')
for x in range (14028):
    a = f.readline(x)
    cur.execute("insert into keywords (keyword) values ('%s')" % (a))
    #or that
    cur.execute("insert into keywords (keyword) values ('%s')" % (unicode(a)))

然后我明白了

'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

我的mysql中有这个

character_set_client    utf8
character_set_connection    utf8
character_set_database  utf8
character_set_filesystem    binary
character_set_results   utf8
character_set_server    latin1
character_set_system    utf8
character_sets_dir  /usr/local/mysql-5.6.20-osx10.8-x86_64/share/charsets/

偶尔,我会将符号写入数据库,但俄语符号就像方 block 之类的东西。
我该怎么办?

另外,我在 repr(a) 之后得到了这个

''
'0'
'5 '
'ru '
'\xd0\xbc\xd0\xb0'
'\xd1\x85\xd0\xb0\xd1'
Traceback (most recent call last):

最佳答案

尝试以这种方式打开文件:

f = open('/Users/aaaa/Desktop/keywords.txt', 'rw+', 编码='utf-8')

关于python - 用python将西里尔字母写入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660585/

相关文章:

mysql - 如何使用 MySQL 获取每篇文章的最低/最高价格统计信息?

mysql - 在不知道第二列值的情况下,在一列中查找在不同列中共享相同值的值

MySQL GROUP BY 使用 JOIN 时速度较慢

PHP MySQL 编码错误?

regex - Notepad++ 正则表达式用不同的替换替换多个值

python - 为什么 Queue.qsize 不准确?

python - 满足列表列表中条件的元组中值的频率分布

python - SQlite3 - 按rowid删除行

python - 损失: nan When build a model for bike sharing

java - 字符串不包含实体,但显示它,并且表示在替换时不会改变