【发布时间】:2014-08-01 06:30:11
【问题描述】:
我有一个向 Python 网络服务器提交请求的应用程序。该应用程序有一个 UTF8 字符串,其内容如下:
法语语言.ppt
这被放入 HTTP 标头中,并以某种方式转换为:
法语语言\xfeaise.ppt
然后,网络服务器上的 Python 尝试对可能期望它是 UTF8 的字符串做一些事情,我得到了这个错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xfe in position 14: invalid start byte
我基本上想将这个 UTF8 从应用程序保存到网络服务器,这样如果我打印它,变量将包含以下内容:
法语语言.ppt
从 Web 客户端和服务器(假设都用 Python 编写)保留 UTF8 字符串的最佳方法是什么?
【问题讨论】:
-
如果没有更多信息(您正在使用的网络服务器等),我无法给出准确的答案,但一种快速的解决方法是将字符串编码为 base64
-
@fileoffset 是一个django应用,有时在mod_wsgi下运行,有时在FCGI下,有时使用内置的appserver。我可能会尝试使用 base64 的东西,但我希望会有一种 Python 能够理解的“正常工作”的字符串转义。 Base64 的问题之一是它在快速检查服务器日志以查看传入的标头时变得无用。