#C develop - no error. Python Error: 'utf-8'. Почему?
Формулировка задачи:
Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format - UTF). Рассмотрим, как кодируется в UTF-8 буква Ж. Её UNICODE - 1046[10] или 0416[16] или 10000 010110[2]. UNICODE в двоичном виде разбивается на две части: пять левых бит и шесть правых. Левая часть дополняется до байта признаком 110 двухбайтного кода UTF-8: 11010000. К правой части приписываются два бита 10 признака продолжения многобайтного кода: 10010110. Окончательно код буквы Ж в UTF-8 выглядит так: 11010000 10010110
" Т.е. Юник(UTF-8) - знаки с переменной длиной - 1 или 2 байта. Для буржуйских букв 1 байт. Т.е. считываем в байте 1-ый бит. Если он == 1, и 2-ой бит == 1, а 3-ий == 0, значит имеем дело со знаком, записанным в 2 байта. Но вопрос: а если буржуйский 8-битный знак будет допустим == 11000000. Это значит 192[10], что по АСКИ > 127 => невозможно. Так... гуглим дальше... "Это был баг в Питоне 3.4: Windows: socket.gethostbyaddr(name) fails for non-ASCII hostname. Он исправлен, так что обновление версии Питона до 3.5+ должно помочь.
" Ан нет однако.... 3.5 то жеРешение задачи: «#C develop - no error. Python Error: 'utf-8'. Почему?»
try: код except UnicodeDecodeError: pass
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д