История изменений
Исправление makoven, (текущая версия) :
Поговорил сам с собой и разобрался)
В третьем питоне все строки UTF-8. Поэтому encode('ISO-8859-1') означает «закодировать UTF-8 строку в ISO-8859-1». Именно закодировать, т.к. результат будет в нестандартной для питона кодировке. Результат, логично, получается байт-строкой, поскольку ISO-8859-1 - 8-битная кодировка. Берем UTF-8 символ (1-4 байта) ищем аналогично выглядящий символ в ISO-8859-1 (падаем с ошибкой если не находим), выводим код этого символа из таблицы ISO-8859-1
decode('cp1251') означает «раскодировать байт-строку в стандартную для третьепитона UTF-8 строку». Берем байт, смотрим как он выглядит в cp1251 кодировке (падаем с ошибкой если не находим), ищем аналогично выглядящий символ в юникод-таблице и выводим его в UTF-8
Исправление makoven, :
Поговорил сам с собой и разобрался)
В третьем питоне все строки UTF-8. Поэтому encode('ISO-8859-1') означает «закодировать UTF-8 строку в ISO-8859-1». Именно закодировать, т.к. результат будет в нестандартной для питона кодировке. Результат, логично, получается байт-строкой, поскольку ISO-8859-1 - 8-битная кодировка. Берем UTF-8 символ (1-4 байта) ищем аналогично выглядящий символ в ISO-8859-1 (падаем с ошибкой если не находим), выводим код этого символа
decode('cp1251') означает «раскодировать байт-строку в стандартную для третьепитона UTF-8 строку». Берем байт, смотрим как он выглядит в cp1251 кодировке (падаем с ошибкой если не находим), ищем аналогично выглядящий символ в юникод-таблице и выводим его в UTF-8
Исправление makoven, :
Поговорил сам с собой и разобрался)
В третьем питоне все строки UTF-8. Поэтому encode('ISO-8859-1') означает «закодировать UTF-8 строку в ISO-8859-1». Именно закодировать, т.к. результат будет в нестандартной для питона кодировке. Результат, логично, получается байт-строкой, поскольку ISO-8859-1 - 8-битная кодировка. Берем UTF-8 символ (1-4 байта) ищем аналогично выглядящий символ в ISO-8859-1, выводим код этого символа. Если такого символа в ISO-8859-1 не находим - падаем с ошибкой
decode('cp1251') означает «раскодировать байт-строку в стандартную для третьепитона UTF-8 строку». Берем байт, смотрим как он выглядит в cp1251 кодировке (падаем с ошибкой если не находим), ищем аналогично выглядящий символ в юникод-таблице и выводим его в UTF-8
Исправление makoven, :
Поговорил сам с собой и разобрался)
В третьем питоне все строки UTF-8. Поэтому encode('ISO-8859-1') означает «закодировать UTF-8 строку в ISO-8859-1». Именно закодировать, т.к. результат будет в нестандартной для питона кодировке. Результат, логично, получается байт-строкой, поскольку ISO-8859-1 - 8-битная кодировка
decode('cp1251') означает «раскодировать байт-строку в стандартную для третьепитона UTF-8 строку». Берем байт, смотрим как он выглядит в cp1251 кодировке, ищем аналогично выглядящий символ в юникод-таблице и выводим его в UTF-8
Исходная версия makoven, :
Поговорил сам с собой и разобрался)
В третьем питоне все строки UTF-8. Поэтому encode('ISO-8859-1') означает «закодировать UTF-8 строку в ISO-8859-1». Именно закодировать, т.к. результат будет в нестандартной для питона кодировке. Результат, логично, получается байт-строкой, поскольку ISO-8859-1 - 8-битная кодировка
decode('cp1251') означает «раскодировать байт-строку в стандартную для третьепитона UTF-8 строку». Берем байт, смотрим как он выглядит в cp1251 кодировке, аналогично выглядящий символ в юникод-таблице и выводим его в UTF-8