2013-09-22 6 views
1

Я использую переменную unicode и заменяю некоторые символы, но когда я пытаюсь обработать определенное значение, он вызывает ошибку UnicodeDecodeError, когда я установил в начале файла python кодировку.UnicodeDecodeError с переменной unicode

Я попробовал эту кодировку: ISO-8859-15, cp1251, и я смотрел на это, но не когда значение переменной содержит этот символ: `

В терминале это работает:

a='Don\xb4t dream it\xb4s over' 
a = a.replace("\xb4","'") 
print a 
output: Don't dream it's over 

Почему это работает в терминале, но не в моем файле python ?.

+0

Можете ли вы разместить свой код, который не работает? –

ответ

0

Код работает для меня. Вот что я сделал:

  1. Скопируйте следующий код в файл и назовите его, как test.py

    a='Don\xb4t dream it\xb4s over' 
    a = a.replace("\xb4","'") 
    print a 
    
  2. Run test.py python ./test.py, а вот выходного

    Don't dream it's over 
    
  3. Моя версия python - Python 2.7.3

0

Необходимо выполнить декодирование с соответствующей кодовой страницы в Юникод. Затем, если вам это нужно на другой кодовой странице (например, UTF-8), вы можете перекодировать ее. WHEN вы используете print Python попытается автоматически закодировать его на кодовой странице вашего терминала.

>>> a = a.decode('iso-8859-1') 
>>> print a 
Don´t dream it´s over 

Редактировать: Попытка расшифровать фактический вопрос затруднительна. Возможно, вы пытаетесь прочитать текст из файла, и это не работает? Опять же важно знать кодировку файла. Многие современные файлы используют кодировку UTF-8.

a = f.readline() 
a = a.decode('utf-8') 
print a 
Смежные вопросы