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

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

我已经阅读了有关 Unicode 和 UTF-8 ( http://docs.python.org/2/howto/unicode.html ) 的 python 文档,但我一直无法找到具体的代码示例,尽管这一定是一个非常微不足道的问题。

我只希望瑞典语的文本显示在带有特殊字符 åäö 等的 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 lite text p\xc3\xa5 ett annat s\xc3\xa5k'))

最佳答案

您正在打印游标调用的结果,这是一个元组;你正在看到它的 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。

关于python - 来自 MySQL 的 utf-8 文本未显示在 IPython Notebook 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14601704/

10-11 21:58