我在django模板中有一些法语字母(é,è,à...)但是当它被django加载时,会引发UnicodeDecodeError异常。
如果我不加载模板但直接使用python字符串。它运作正常。
使用django模板使用unicode有什么办法吗?
答案 0 :(得分:7)
您可能正在以非unicode编码存储模板,例如latin-1。我相信Django默认假设模板是UTF-8(虽然有一个设置可以覆盖它)。
您的编辑器应该能够以UTF-8编码保存模板文件(可能通过保存为页面的下拉列表,尽管这可能取决于您的编辑器)。将文件重新保存为UTF-8,错误应该消失。
答案 1 :(得分:3)
这是与您的问题相关的Django unicode documentation:
“但常见的情况是从文件系统中读取模板,这会产生轻微的复杂性:并非所有文件系统都将其数据存储为UTF-8编码。如果模板文件未以UTF-8编码存储,请设置对磁盘上文件编码的FILE_CHARSET设置。当Django读入模板文件时,它会将数据从此编码转换为Unicode。(FILE_CHARSET设置为'utf-8'默认设置。)
DEFAULT_CHARSET设置控制渲染模板的编码。默认设置为UTF-8。 “