我有以下夹具:
- model: backoffice.Language
pk: 1
fields:
name: Français
code: fr
- model: backoffice.Language
pk: 2
fields:
name: English
code: en
- model: backoffice.Language
pk: 3
fields:
name: ру́сский
code: ru
我使用以下方法创建了数据库:
CREATE DATABASE xxx_db WITH ENCODING 'UTF8';
然而我得到:
django.core.serializers.base.DeserializationError: Problem installing fixture 'xxx/project_root\backoffice\fixtures\initial_data.yaml': 'charmap' codec can't decode byte 0x81 in position 321: character maps to <undefined>
如果我删除:
name: ру́сский
并将其替换为
name: russian
夹具加载,但在数据库中“ç”不正确:
Français
yaml 应该默认为 utf8。与unicode()或重载某些功能有什么关系?
** 编辑 **
它不是来自 postgresql,因为:
update backoffice_language set name = 'ру́сский' where id = 3;
update backoffice_language set name = 'Français' where id = 1;
select * from backoffice_language;
将显示正确的 utf8 编码数据。我正在使用 django 1.6