#C develop - no error. Python Error: 'utf-8'. Почему?

Узнай цену своей работы

Формулировка задачи:

В общем запускаю один и тот же код в SD & Python. На localhost Python ругается, как всегда не та кодировка decode("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'. Почему?»

textual
Листинг программы
try: 
    код  
except UnicodeDecodeError: 
    pass

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5