Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django{%trans%}模板标记给出DjangoUnicodeDecodeError_Python_Django_Utf 8_Internationalization - Fatal编程技术网

Python Django{%trans%}模板标记给出DjangoUnicodeDecodeError

Python Django{%trans%}模板标记给出DjangoUnicodeDecodeError,python,django,utf-8,internationalization,Python,Django,Utf 8,Internationalization,我们正在尝试在Django 1.7.4 web应用程序中实现i18n。 已成功创建.mo和.po文件, 希伯来文.po文件: #: templates/community/profile.html:109 msgid "Games" msgstr "משחקים" 有些包含希伯来文字符(非ascii), 我创建了一个只有以下内容的小模板: {% load i18n %} {% trans "Games" %} 获取错误: DjangoUnicodeDecodeError at /commun

我们正在尝试在Django 1.7.4 web应用程序中实现i18n。 已成功创建.mo和.po文件, 希伯来文.po文件:

#: templates/community/profile.html:109
msgid "Games"
msgstr "משחקים"
有些包含希伯来文字符(非ascii), 我创建了一个只有以下内容的小模板:

{% load i18n %}
{% trans "Games" %}
获取错误:

DjangoUnicodeDecodeError at /community/testtrans/
'ascii' codec can't decode byte 0xd7 in position 0: ordinal not in     range(128). You passed in <django.utils.functional.__proxy__ object at     0x05A29550> (<class 'django.utils.functional.__proxy__'>)
djangonecodedecodeError位于/community/testtrans/
“ascii”编解码器无法解码位置0:序号不在范围(128)中的字节0xd7。你通过了()
我注意到生成的.PO文件编译为ASCII,尝试更改为UTF-8,没有帮助

这些测试通过得很好:

  • 直接在HTML文件中写入希伯来语文本
  • 传递视图参数
    viewParams['trans_games']={(“games”)
    ,然后使用
    {{trans_games}}
我们在两台本地计算机上进行了尝试:Windows和Mac

我在这里找到了解决方案:

结果我不得不将这个头添加到.po文件中

"Content-Type: text/plain; charset=UTF-8\n"

很不幸你被否决了。在使用i18n信息多年后,我今天遇到了这个问题。在我的头撞到墙上之后,从来没有遇到过这个问题,我最终通过谷歌发现了这个Q+A。将上述行添加到我的PO文件的元数据中,为我解决了这个问题(Django 1.9)。另请参见此处的元数据: