我想通过pipes
标准库编写一些重音字符。python 2没有问题,但python 3通过apache失败:
在我的终端上,我没有问题,因为文件对象是用UTF-8编码自动初始化的:
In[1]: pipes.Template().open('mypipe','w')
Out[1]: <_io.TextIOWrapper name='mypipe' mode='w' encoding='UTF-8'>
但是当apache(在django视图中)启动相同的命令时,我得到:
pipes.Template().open('mypipe','w')
<_io.TextIOWrapper name='mypipe' mode='w' encoding='ANSI_X3.4-1968'>
“ANSI_X3.4-1968”从何而来,以及如何将其强制为“utf-8”
注意:当我使用write()时,我只能传递python3字符串,而不能传递编码的utf-8字节
注意2:文件对象__init__()
没有“encoding”参数,其属性“encoding”是只读的
注3:我找到的唯一非python解决方案是配置wsgi语言环境和语言:
WSGIDaemonProcess myapp user=apache group=apache processes=4 threads=1 lang=en_US.UTF-8 locale=en_US.UTF-8
目前没有回答
相关问题 更多 >
编程相关推荐