Угадайте, основываясь на (недостаточной) предоставленной информации:
Вы используете Python 2.x.
[Угадай] x
- это str
объект.
[Guess] Eclipse устанавливает кодировку по умолчанию в UTF-8.
«Стандартный отладчик» устанавливает кодировку по умолчанию ascii.
Результат: сплат.
Решение (стандартная процедура работы с Unicode):
- При вводе преобразуйте все
str
объекты в `Unicode '.
- Работа в Юникоде.
- На выходе закодируйте все
unicode
объекты, используя любую кодировку
Ожидается потребитель продукции.
Важное обновление На самом деле, если x
был объектом str
в кодировке UTF-8, вы должны получить сообщение типа UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 7: etc etc
.
Обратите внимание, что ваше фактическое сообщение об ошибке гласит UnicodeEncodeError: 'ascii' codec can't encode character u'\u0144' in position 7: etc etc
Это указывает на то, что все, на что он жалуется, имеет (a) объект unicode
(b) длиной не менее 8 символов. Однако в действительности вы говорите, что x
не является объектом unicode
(в противном случае x.decode ('utf8') потерпит неудачу), а другие два аргумента replace
имеют длину только 1 символ. Следовательно, мы имеем невозможность.
Чтобы помочь решить эту проблему:
print type(x), repr(x) # for Python 2.x
Lstroke = "Ł"
print type(Lstroke), repr(Lstroke)
y = x.replace(Lstroke, 'L')
и отредактируйте свой вопрос, чтобы показать действительный код, который вы запустили, а также полное сообщение об ошибке и трассировку .
Кстати: u '\ u0144' - ЛАТИНСКИЙ МАЛЕНЬКИЙ БУКВ N с ОСТРОМ; эта информация помогает вообще?