Специальные строки работают по-разному в классе и в консоли - PullRequest
0 голосов
/ 19 января 2012

Я ввожу

config = {}
config['x'] = ["vision","unknown","SCH-i569","harmony","中国移动"]

в порядке. Консоль Python может справиться с этим

Но когда я пишу тот же код в функции инициализации класса, возникают некоторые проблемы с кодированием

class Profile(object):
def __init__(self):
    attributes = []
    attributes.append('8')
    attributes.append('htc')
    config = {}
    config['x'] = ["vision","unknown","SCH-i569","harmony","中国移动"]
    print config['x']
    attributes.append(config['x'])
    self.attributes = attributes
def getAttributes(self):
    return self.attributes

возникает проблема:

File "<stdin>", line 7
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte

когда я удаляю "中国移动", класс работает. Я не знаю, почему это отличается между классом и другими

1 Ответ

2 голосов
/ 19 января 2012

Добавьте #-*-coding:utf-8-*- в исходный файл.

http://www.python.org/dev/peps/pep-0263/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...