Syntaxerror unicode error utf 8

При конвертации между строками и байтами очень важно точно знать, какая кодировка используется, а также знать о возможностях разных кодировок.

Например, кодировка ASCII не может преобразовать в байты кириллицу.

Ошибка в регекспе с русскими символами Python: SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xd1.

Когда используются русские буквы не работает код. Пример:

average = int(re.findall(u'Среднее = (d+)', out)[0])

Исключение: SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xd1 in position 0: invalid continuation byte

Типичная ошибка в Windows, потому что каталог пользователя по умолчанию C:user<your_user>, поэтому, когда вы хотите использовать этот путь в качестве строкового параметра в функцию Python, вы получаете ошибку Unicode, просто потому, что u — это Unicode escape. Любой символ не числовой после этого выдает ошибку.

Чтобы решить эту проблему, просто удвоить обратную косую черту:C:\user\<your_user>...

Префикс с ‘r’ работает очень хорошо, но он должен быть в правильном синтаксисе. Например:

 passwordFile = open(r'''C:UsersBobSecretPasswordFile.txt''')

Нет необходимости в\[двойной обратной косой черты] здесь – поддерживает читаемость и работает хорошо.

Оцените статью