UnicodeEncodeError с символом u '\ u2013 - PullRequest
0 голосов
/ 29 апреля 2019

Я получаю приведенную ниже ошибку с символом тире "-"

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 38: ordinal not in range(128)

Я пытался использовать следующее: skill.encode ('utf-8') , но я все еще получаю ошибку. Ниже мой код, в котором я пытаюсь писать в CSV.

 writer.writerow([name.encode('utf-8'),
                 heading.encode('utf-8'),
                 location.encode('utf-8'),
                 education.encode('utf-8'),
                 summary,
                 currentRole,
                 allRoles,
                 companiesFollowed,
                 groups,
                 skills.encode('utf-8')])

1 Ответ

1 голос
/ 29 апреля 2019

Вы можете указать один из нескольких параметров для str.encode под ключевым словом errors. Более подробную информацию можно найти в документах , но я бы порекомендовал вам использовать обработчик ошибок 'replace'.

writer.writerow([name.encode('utf-8', errors='replace'),
    heading.encode('utf-8', errors='replace'),
    location.encode('utf-8', errors='replace'),
    education.encode('utf-8', errors='replace'),
    summary,
    currentRole,
    allRoles,
    companiesFollowed,
    groups,
    skills.encode('utf-8', errors='replace')])

В результате получается объект bytes с ? вместо каждой не кодируемой кодовой точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...