Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Список UnicodeEncodeError для Python

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Часто вискакує помилка для str, типу

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013'
Замість u’\u2013 може бути u2019, u2022, xa3, xa6, xab, 201c, u201d, xae, u2122. Де взяти список всіх можливих характерів на яких спіткнеться str в Python?
👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Есть одно чудное правило для Python: игнорировать ошибки на .decode(), и не выводить непонятные данные на print =)

А як бути, якщо помилка
UnicodeDecodeError: ’utf-8′ codec can’t decode byte 0xc3 in position 83: invalid continuation byte
появляється в другому рядку коду
reader = codecs.open("text.txt", 'r', encoding='utf-8')
for line in reader:

А какая версия питона?
Стоит проверить кодировку text.txt, например в notepad++, и превентивно преобразовать в утф8 без БОМ (i.imgur.com/zhiAlS8.png, не забыв сохранить файл

Python 3.5.1 |Anaconda 2.5.0 (64-bit)| (default, Dec 7 2015, 11:16:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
text.txt це великий файл на 1.5Г, можна якось конвертувати в bash чи python?

If the code point is 128 or greater, the Unicode string can’t be represented in this encoding.

Ок, як перебрати всі можливі характери із code point >= 128 ?

характери

Символи, а не характери. А взагалі для Юнікода — кодові пункти (бо один символ може складатись з декількох КП).

Ок, як перебрати всі можливі характери із code point >= 128 ?

Чим не до вподоби таке: for(u=128;u<=0x10FFFF;++u){...} ?
Я не глузую, це серйозне запитання. А то мені здається, що Ви не описуєте якісь принципові особливості ситуації.

Я б радив пояснити тут «навіщо», і Вам пояснять чому Вам це не потрібно.

Підписатись на коментарі