python - Python UnicodeDecodeError 最佳实践

标签 python unicode exception-handling pylons mako

我使用 Pylons 框架,Mako 模板用于基于网络的应用程序。我并没有太深入了解 Python 处理 unicode 字符串的方式。当页面呈现时我确实看到我的网站崩溃,我有一个紧张的时刻,后来我知道它与 UnicodeDecodeError 有关。 .

看到错误后,我开始围绕我的 Python 代码进行网格化,使用“忽略”选项添加对字符串的编码、解码调用,但有时我仍然看不到错误消失了。

最后,我使用 ignore 解码为 ascii 并使网站运行而没有任何崩溃。

我网站的输入来自许多网站。这意味着我无法控制选择的语言或语言。我的网站支持国际语言和英语。我有 feed 聚合,通常不关心 unicode/ascii/utf-8。当我通过 mako 模板显示文本时,我按原样显示。

不是网络专家,在 Python 项目中处理字符串的最佳做法是什么?我应该只关心呈现文本还是应用程序的所有阶段?

最佳答案

如果你对它有影响,这是无痛的方式:

  • 了解您的输入编码(或忽略解码)并在数据到达您的应用后立即对其进行解码(编码)
  • 仅在内部使用 unicode(u'something' 是 unicode),也在数据库中工作
  • 为了呈现、导出等,只要它离开您的应用,encode('utf-8') 数据

关于python - Python UnicodeDecodeError 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933911/

相关文章:

python - python从派生类对象调用基类的方法

python - Unicode 转义文件处理错误

c - GTK+ 2.24。如何在C中使用unicode符号

asp.net-mvc-3 - 如何处理MVC3中的异常?

c++ - 我可以修改 std::exception_ptr 中异常的值吗?

Python:字典作为实例变量

python + 如何删除消息 "cryptography is not installed, use of crypto disabled"

python - 没有循环的 Numpy 平均位置?

java - 如何解码java中的Unicode编码?

powershell - (PowerShell) 记录异常并继续(Active Directory 模块)