Django 1.6 Python 3 Nginx,uWsgi
有关于此错误的视图主题,但解决方案不适用于我。
我有一个Web应用程序,可以在tar-archive中上传xml文件以进行导入。
在使用“python manage.py runserver”运行应用程序的本地计算机上进行开发时,导入过程运行完美无缺。当使用Nginx和uWsgi在vServer上运行应用程序时,我收到此错误:
UnicodeDecodeError at /sync/upload/
'ascii' codec can't decode byte 0xc3 in position 1035: ordinal not in range(128)
错误发生在我写的最后一行和从那里运行的代码:
xml = f.read() <- My line
return codecs.ascii_decode(input, self.errors)[0]
由于整个事情在我的系统上吵架而不是在vps上,我认为问题是某种配置问题。到目前为止,我已尝试在nginx启动之前设置LANG和LC_ALL,并在“open(xmlfile)为f”时提供encoding ='utf-8'属性。还有许多尝试手工编码的不同方法。
所以我知道我没有选择。
我在瑞士使用en_US.UTF-8 ArchLinux机器工作。 VPS是一个Debian机器,我不知道如何配置默认字符集,如果这甚至是相关的。欢迎任何帮助。
谢谢和问候, 阿德里安
答案 0 :(得分:0)
您明确使用ascii_decode
。所以语言设置超出了范围。 ascii_decode
可以解码0..127范围内的字节。但是0xc3 = 195&gt; 127.因此,您正在使用另一个文件测试您的服务器,该文件包含值为&gt;的字节。 127.通常,xml读取器占用字节而不是字符串,因此不需要解码,因为编码是在xml文件中给出的。