Python django编码到utf8不工作

Python django编码到utf8不工作,python,mysql,django,utf-8,Python,Mysql,Django,Utf 8,我有点困在这里了。我有这段代码,它将文本中的html元素解压缩并将其编码为utf8 import HTMLParser def clean_text(text): htmlparser = HTMLParser.HTMLParser() return htmlparser.unescape( ' '.join(text.replace('\n', '').split()) ).replace(';', ',').encode('utf-8').strip

我有点困在这里了。我有这段代码,它将文本中的html元素解压缩并将其编码为utf8

import HTMLParser

def clean_text(text):
    htmlparser = HTMLParser.HTMLParser()
    return htmlparser.unescape(
        ' '.join(text.replace('\n', '').split())
    ).replace(';', ',').encode('utf-8').strip()
我正在使用mysql(上帝保佑我!)

这段代码在两个项目中运行。在第一个项目中,代码运行良好,没有问题。在另一个项目中,字符串将按如下方式保存:

Die Verbindungen zwischen Dinosauriern und Vögeln immer stärker
应该是

Die Verbindungen zwischen Dinosauriern und Vögeln immer stärker
我在django 1.7和python 2.7.9两个项目中使用

我错过了什么?mysql配置是
utf8\u general\u ci
,聊天集是
utf8
。两个mysql数据库的设置相同


解决这个问题将是一个奇迹。。。如果有人能帮我调试这个东西,我会热情地拥抱和亲吻你。在你的文件上提到编码,编码:utf-8,它会很有魅力。

Vögeln
-->
VÃgeln
就是Mojibake的一个例子

  • 客户端中的字节以utf8正确编码(良好)
  • 您可能默认使用
    集合名称拉丁1
    (或
    集合字符集(“拉丁1”)
    或…)进行连接。(应该是
    utf8
  • 表中的列可能是,也可能不是字符集utf8,但它应该是
也许有用:

Python检查表:

  • #-*-编码:utf-8-*-
    --(用于代码中的文字)
  • connect()
    call中的
    charset='utf8'
    ——这是埋在
    瓶子中的mysql.Plugin
    ?(注意:尝试使用“utf-8”和“utf8”)
  • 用utf8编码的文本
  • 如果您愿意在任何地方都接受utf8,则无需使用encode()或decode()
  • u'…'
    用于文本
  • 靠近html页面的开头
  • 内容类型:text/html;字符集=UTF-8(在HTTP响应头中)
  • 标题('Content-Type:text/html;charset=UTF-8');(用PHP获取响应标题)
  • 字符集utf8对MySQL中的列(或表)定义进行utf8\u常规\u ci比较
  • [[一直到]]
  • 使用MySQL连接器/Python代替pyodbc和MySQL连接器/ODBC

(@DanielRoseman——我说的有什么不对吗?

它真的读了
#coding:utf-8
?因为我只知道
#-*-编码:utf-8-*-
,而且我已经在itI中有了它,所以我使用了您的代码并指定了编码,它成功了。:)我认为这是对一个模棱两可的问题的模棱两可的回答。请不要随意推荐。编码声明只影响代码本身中的文字文本;这个问题是关于从数据库中检索文本,其中编码声明将完全无效。您是否希望
clean_text
的输出为
unicode
bytes
/
str
?@bgusach好问题!str我认为:)我认为你应该了解你的函数的预期输入和输出是什么。我想说,如果你想存储在数据库中,你不必考虑编码,只需传递unicode对象(即不需要
encode
。@bgusach尝试过,但同样的结果在这里,你是如何得到意外结果的?