Найти - Пользователи
Полная версия: Проверка коректности кодировки с слове
Начало » Python для новичков » Проверка коректности кодировки с слове
1 2
2ur1st
Вопрос в следующем посде того как файл спарсен и с ним начинаеться работа, возникает следующая ошибка:
'charmap' codec can't encode character ‘\xfc’
файл читал в UTF
open(pathToFile, 'r', encoding='utf-8')
сама суть проблемы в том что ошибка появлясеться только когда делаю print()
если просто пройти список, то ни каких ошибок выявлено не будет.
Помогите выявить ошибку в слове без помощи print()
2ur1st
кстати падает скрипт вот на таком слове “schreitmüller”
py.user.next
>>> 'schreitmüller'.encode('cp1251')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.3/encodings/cp1251.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode character '\xfc' in position 8: character maps to <undefined>
>>>

Виндовая консоль выводит в cp1251.
2ur1st
py.user.next
я смоделирую ситуацию, есть список слов, я их прохожу циклом и делаю с ними какие нибудь преоброзвания, и во время этого валиться цикл, из за ошибки кодировки.
я хотел бы заранее отфильтровать этот список, что бы в нем не было таких слов, но это ошибка вываливаеться только при print(), а хотел бы не засорять вывод, а сделать как то более красиво

делаю так
to_return = []
for word in words:
    try:
         print(word )
         to_return.append(word )
    except Exception as e:
         pass
codersed
Попробуйте так прочитать:
with open("filename") as file:
    content = file.readlines()
2ur1st
codersed
Попробуйте так прочитать:
дело не в чтение файла, а в том как обработать эту ошибку
Shaman
2ur1st
а сделать как то более красиво
try:
...
... encode(sys.stdout.encoding)
Недостаточно красиво?
2ur1st
Shaman
хочу донести до вас, что проблема не в выводе этого слова, а в том что я хочу это слово извлечь из списка, что бы последющая обработка, на падала на ошибка кодироки.
если вывести этого слова в UTF то получиться,
b'schreitm\xc3\xbcller'

т.е все валиться из за одного символа
Shaman
2ur1st
хочу донести до вас, что проблема не в выводе этого слова
А я гдо-то вывожу слово?!
2ur1st
Shaman
нет, но при таком преобразование, косяк не вспывет, а просто будет в юникоде, и в том виде в котором будет это строка меня не устраивает, точнее я просто не знаю что мне дельше с ней делать, как только потребуеться производить расчеты со строками?
за любой совет буду благодарен
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB