Python Markdown模块在unicode转换时卡住,utf-8
我正在使用web2py的markdown模块来处理带格式的文本。问题是,有些人提交的内容里包含了智能引号、特殊字符等等,我需要把这些替换成它们的对应字符。
我有这样的文本:'\n\r\n上校的脸色有点变了。 \xe2\x80\x9c但是,抱歉我的冒犯,先生 \xe2\x80" 我们现在要去乌瓦尔'
我该怎么做才能确保调用unicode(txt, 'utf-8')时不会出错,就像markdown内部处理文本时那样?通常情况下,文字处理程序插入的那些花哨的特殊引号是导致问题的原因,但似乎还有很多字符也会出问题。
1 个回答
1
这个 \xe2\x80\x9c
是 U+201C 左双引号(也叫“智能引号”),当它被解码为 UTF-8 时会变成这个样子。而出现的两个 \xe2\x80"
不是有效的 UTF-8 序列,里面的 "
(也叫“傻引号”)让人觉得有点奇怪。看起来你可能遇到了数据损坏或者编码的问题,或者两者都有。在我们开始把智能引号替换成傻引号之前,需要先搞清楚这个问题。
那么,“人们是怎么提交这些内容的”呢?在 markdown 处理 unicode(txt, 'utf-8')
之前,这些内容经历了什么样的转换呢?