LINUX.ORG.RU

История изменений

Исправление deep-purple, (текущая версия) :

надо исходную проблему решать
неюникодный файл пытаются читать так, словно внутри юникод

С неюникодом юникода проблем не бывает.

Читаешь бинарно utf-8? Значит так:

Прочитал байт (учар), если он < 128, значит это однобайтный символ, иначе если он < 224, читай еще один байт, иначе если он < 240, читай еще два, иначе если он < 248, читай еще три, иначе если он < 252, читай еще четыре, иначе читай еще пять. Символ максимум шестибайтный.

Проблема битости символов может быть только из-за BOM в начале файла (но в утф-8 он НЕ ВЛИЯЕТ НА ПОРЯДОК БАЙТ) и в конце если там байты символа не все (на основе первого «опорного» байта).

Даже если в таблице место не занято — тебе покажут фалбечные вопросики в ромбике и ничего не упадет.

Что там нагородили питоностроители или ТС — я хз. В питон не умею.

Исходная версия deep-purple, :

надо исходную проблему решать
неюникодный файл пытаются читать так, словно внутри юникод

С неюникодом юникода проблем не бывает.

Читаешь бинарно utf-8? Значит так:

Прочитал байт (учар), если он < 128, значит это однобайтный символ, иначе если он < 224, читай еще один байт, иначе если он < 240, читай еще два, иначе если он < 248, читай еще три, иначе если он < 252, читай еще четыре, иначе читай еще пять. Символ максимум шестибайтный.

Проблема битости символов может быть только из-за BOM в начале файла (но в утф-8 он НЕ ВЛИЯЕТ НА ПОРЯДОК БАЙТ) и в конце если там байты символа не все (на основе первого «опорного» байта).

Что там нагородили питоностроители или ТС — я хз. В питон не умею.