2

我有以下夹具:

- 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

4

0 回答 0