@sandrosklyarov

Как менять кодировку только в случае необходимости?

Циклу приходит огромное число строк
Большинство приходит в нормальной кодировке
Но некоторые в виде "Строительство деревянных РґРѕРјРѕРІ РёР· Р±СЂСѓСЃР° РїРѕРґ ключ, готовые деревянные РґРѕРјР° РІ РњРѕСЃРєРІРµ"
Для того, чтобы данная строка приняла нормальный вид, нужно:
name = title.decode('utf-8').encode('cp1251')
Делаю такие действия со строкой такого вида - и она становится нормальной.
Проблема в том, что нужно в цикле как-то определять, нужного она вида или нет... Если делать такие действия с каждой строкой, то большинство (которые и были нормальными) станут каракулями...
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@sandrosklyarov Автор вопроса
try:
    win_name = unicode(title.encode('cp1251')) #если title нормального вида, эта строка вызовет исключение
    name = title.decode('utf-8').encode('cp1251') #если исключения нет, кодируем
except UnicodeDecodeError: #если исключение есть - оставляем
    name = title
except UnicodeEncodeError:
    name = title
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы