3

我是编程新手,但我知道如何谷歌,所以在经过大量试验和错误之后,我敢于向你寻求帮助。

我有一个带有 utf-8 编码文本(瑞典语)的 MySQL 数据库(数据库名称:文本,表名:文本),我想使用 mysql-python(MySQLdb)将其提取到 IPython Notebook 中以进行进一步处理。

我已经阅读了关于 Unicode 和 UTF-8 的 python 文档(http://docs.python.org/2/howto/unicode.html),但我无法找到具体的代码示例,即使这必须是一个非常琐碎的问题。

我只希望瑞典语文本以特殊字符 åäö 等显示在 IPython Notebook 中。如您所见,我已经或多或少地放入了我在网上找到的关于 Unicode 和 UTF-8 的每个代码片段,但我不明白我在哪里做错了?

有人可以帮我吗?

# -*- coding: utf-8 -*-
import MySQLdb
db = MySQLdb.connect('localhost', 'user', 'password', 'text', charset='utf8', use_unicode=False)
db.set_character_set('utf8')
cursor = db.cursor()
cursor.execute('SET NAMES utf8')
cursor.execute('SET CHARACTER SET utf8')
cursor.execute('SELECT title, body FROM text LIMIT 5') 
result=cursor.fetchall()
 print result

更新:这是我从 Print 语句中得到的:(('F\xc3\xb6rsta rubriken', 'H\xc3\xa4r \xc3\xa4r lite text p\xc3\xa5 svenska'), ('Andra rubriken' , 'Ytterligare 精简版文本 p\xc3\xa5 ett annat spr\xc3\xa5k'))

4

1 回答 1

2

您正在打印游标调用的结果,它是一个元组;你正在看到它的 Python 表示。

如果您遍历它,您将看到预期的结果:

>>> for i in result:
...    print "{} {}".format(*i)
... 
Första rubriken Här är lite text på svenska
Andra rubriken Ytterligare lite text på ett annat språk

如果您的输出与上述不匹配,这意味着您的终端不支持 UTF-8。

于 2013-01-30T10:36:00.833 回答