【问题标题】:Python Markdown module choking on unicode conversion, utf-8Python Markdown 模块因 unicode 转换而窒息,utf-8
【发布时间】:2011-05-29 04:08:33
【问题描述】:

我正在使用 web2py 的 markdown 模块来处理标记的文本。问题是,人们提交的东西带有智能引号、特殊字符等,我需要用它们的等价物替换它们。

我有这样的文字:'\n\r\n上校的脸色有些苍白。 \xe2\x80\x9c但是,那么 \xe2\x80" 恕我冒昧,先生 \xe2\x80" 我们现在要去 Uvar'

如何确保像在 markdown 内部的文本上那样调用 unicode(txt, 'utf-8') 不会引发错误?文字处理程序插入的花哨的特殊引号是正常原因,但似乎有很多字符是一个问题。

【问题讨论】:

    标签: python unicode utf-8 markdown


    【解决方案1】:

    \xe2\x80\x9c 在解码为 UTF-8 时是 U+201C 左双引号(“智能引号”)。 \xe2\x80" 的两次出现不是有效的 UTF-8 序列,并且 " (“哑”引号)的存在是可疑的。您似乎有修改问题或编码问题,或两者兼而有之。在执行替换任务之前,我们需要先解决这个问题。由哑引号组成的智能引号。

    “人们提交东西”的具体情况如何?在降价之前unicode(txt, 'utf-8')经历了哪些转变?

    【讨论】:

    • 典型的罪魁祸首是 Microsoft Word,它默认将引号更改为智能引号。由于将 Word 生成的文本粘贴到 Microsoft 记事本中会删除粗体、底层等,因此许多人错误地认为它仅使用“纯文本”(BTW 从未明确定义)和/或 ASCII。记事本不会删除智能引号,因为它使用 Code Page1252,至少在第 3 代中,它定义了非法 0x80-0x9F 中的字形,包括臭名昭著的智能引号。
    猜你喜欢
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2019-07-20
    • 2018-02-15
    • 2016-08-24
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    相关资源
    最近更新 更多