setting.py в django не может прочитать символы utf-8 - PullRequest
0 голосов
/ 27 июня 2018

Я пытался присвоить значение MEDIA_ROOT, содержащее слово с ударением, но Django doent принимает его. Я пытался Unicode (UTF-8) и кодирование его без каких-либо положительных результатов

Я получаю ошибку: SyntaxError: Non-ASCII character '\xc3' in file Что я могу сделать для того, чтобы настройки принимали знаки акцента (ó, á, é, í, ú)

SyntaxError: Non-ASCII character '\xc3' in file C:\Users\Meccha\Documents\django\project\settings.py on line 160, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

И в строке 160 у меня есть: MEDIA_ROOT = os.path.join(u'D:', u'INVESTIGACIÓN._P')

1 Ответ

0 голосов
/ 27 июня 2018

В существует направление между str и unicode. str являются ASCII строками, поэтому они могут содержать только ASCII-символов. С другой стороны, unicode строки могут содержать все символы Юникода.

Вы можете определить строку Unicode с префиксом u, это позволяет писать символы Unicode, такие как u'\xf3', чтобы писать строку Unicode, содержащую символ Ã.

Если вы, тем не менее, хотите также писать строки в юникоде, вам необходимо указать кодировку файла в заголовке файла. Итак, файл settings.py выглядит так:

<b>#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import unicode_literals</b>

import os

# ...
# (some other settings)
# ...

MEDIA_ROOT = os.path.join('D:', <b>u</b>' INVESTIGACIÓN_P')

Таким образом, верхняя часть задает кодировку, а последняя имеет префикс u, чтобы пометить строку как unicode строку.

...