Форум сайта python.su
0
test.py и dialog.txt в кодировке Utf_8
Все равно пишет:
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xef in position 0: ordinal not in range(128)
В чем проблема? Как ее решить?
dialog = open('dialog.txt','r') dialog = dialog.read() if key == u'Ввести': txt = self.quest.text() if txt in dialog: print 1
config = ConfigParserFix.ConfigParser() config.readfp(codecs.open('dialog.ini', "r", "utf-8-sig"))
Отредактировано Guljaca (Окт. 2, 2012 00:22:51)
Офлайн
14
Очевидно же. dialog.read() возвращает str, а в txt у тебя, скорее всего, unicode.
Офлайн
0
odnochlen
Очевидно же. dialog.read() возвращает str, а в txt у тебя, скорее всего, unicode.
Отредактировано Guljaca (Окт. 2, 2012 12:16:04)
Офлайн
568
# -*- coding:utf-8 -*-
?
Офлайн
14
А в dialog валидный utf8 без BOM?
Он случайно не на кодировку исходника матерится?
Отредактировано odnochlen (Окт. 2, 2012 17:30:21)
Офлайн
0
FishHookЧто делает эта строка? Я всегда думал, что она просто для удобства - показывает кодировку файла.
# -*- coding:utf-8 -*-
odnochlenНе понимаю смысла этой фразы.
А в dialog валидный utf8 без BOM?
Офлайн
14
GuljacaНе показывает, а задает.
Я всегда думал, что она просто для удобства - показывает кодировку файла.
GuljacaЭто?
Так-то решение уже есть выше.
GuljacaТогда стоило бы яснее выразиться.
Ок:
dialog = open('dialog.txt','r')
dialog = dialog.read()
dialog = unicode(dialog,'utf-8')
Офлайн