Проблема в том, что, поскольку вы непосредственно вставляете свои символы в файл python, интерпретатор (Python 2) пытается прочитать их как ASCII (даже перед тем, как кодировать, ему нужно определить литерал), что недопустимо.То, что вам нужно, это литерал Unicode, если вы вставляете байты не ASCII:
x=u'المملكة العربية السعودية' #Or whatever the corresponding bytes are
print x.encode('utf-8')
Вы также можете попробовать установить весь исходный файл для чтения как utf-8
:
#/usr/bin/python
# -*- coding: utf-8 -*-
и не забудьте сделать его работоспособным, и, наконец, вы можете импортировать будущее из Python 3:
from __future__ import unicode_literal
вверху файла, поэтому строковыми литералами по умолчанию являются utf-8
.Обратите внимание, что \xd8
отображается как phi
в моем терминале, поэтому убедитесь, что кодировка верна.