LINUX.ORG.RU

Python: UTF-8 to CP1251


0

1

Читаю данные из экселевского документа, который написан в утф8, но дял сайта нужно перевести его в СР1251. Задача несложная, каждой строчке сделать encode(«cp1251»), но в тексте встречаются специфические утф8 символы. Хочу записать текст просто пропуская их. Можно ли как нибудь это сделать? При обычном обращении енкод выдает ошибку и программа останавливалась Самое очевидное решение это каждую строчку разбирать в цикле и если элемент не кодируется то пропускать его, но это подозрительно похоже на костыль. Есть ли в питоне что нибудь?


Самое очевидное решение это каждую строчку разбирать в цикле и если элемент не кодируется то пропускать его, но это подозрительно похоже на костыль.

Самое очевидное — прочитать, наконец, документацию.

baverman ★★★
()
Ответ на: комментарий от baverman

Толсто, впрочем я читал документацию. Написана она не скзаать чтобы толково. У метода encode есть второй параметр который указывает хендлдер ошибок, токо что из себя прдеставляет этот хендлер - неясно.

Nortsx
() автор топика

> дял сайта нужно перевести его в СР1251

Но почему бы сайт не перевести в utf-8? Ведь это будет правильнее.

anonymous
()
Ответ на: комментарий от Nortsx

Как обычно просто дать ответ все зажопили:
string.decode('u8').encode('cp1251', 'ignore') # по дефолту - 'strict' - выбрасывает ошибки, 'replace' заменяет символ на какую-то хрень, сейчас не помню. Всё есть в _нормальных_ доках.

anonymous
()
Ответ на: комментарий от anonymous

Большое спасибо! Я уже привык что сначала начинается говнополивалка а потом находится адекватный человек который и дает ответ.

Nortsx
() автор топика
Ответ на: комментарий от Nortsx

s/находится адекватный человек/приходит anonymous/

anonymous
()
Ответ на: комментарий от Nortsx

> Большое спасибо! Я уже привык что сначала начинается говнополивалка а потом находится адекватный человек который и дает ответ.

Это так, но пару абзацев документации прочитать было бы быстрее.)))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.