Здравствуйте, Videoman, Вы писали:
V> R>Итеририровать кодпоинты. В utf-8 четыре проверки, в utf-16 — одна. Вопрос нормализации выносим за скобки т.к. он существует вне зависимости от кодировки.
V> R>Я вроде согласился, что как кодировка для сериализации utf-8 удобна, но мы говорим о хранении и обработке строк. При хранении той же кириллицы от utf-8 профита никакого, при хранении китайских иероглифов utf-8 еще и более требовательна к памяти. Единственный выигрыш это латиница.
V> Вот две одинаковые буквы 'Ё', только одна занимает один кодпоинт, а другая два, какие иероглифы??? Вторая Ё занимает и в UTF-8, и в UTF-16 по 4-ре байта. Символ — не равно кодпоинт.
V> Ё — 0х0401
V> Ё — 0х0415 0х0308
Я для кого только что написал о нормализации?
V> Короче моё утверждение: Невозможно ни в какой кодировке работать с Юникод оперируя индексами кодпоинтов как символами. Уже даже в рамках европейских языков существую комбинируемые диакритические знак, префиксы, индексы, зачеркивание и т.д. Так зачем плодить кодировки, если UTF-8 на практике компактнее, да еще и удобнее для передачи и хранения ?!
В utf-16 вполне. После нормализации (еще раз). Не нужно несколько проверок на длину последовательности, не нужно проверок корректности последовательностей.
V> R>Я о том, что кодпоинты вне BMP это эмоджи и прочее.
V> Т.е. эможджи нафиг, так ?! Ну так нафига тогда говорить за весь Юникод. Пиши что ты имеешь в виду свою, выдуманную кодировку, где половина информации из любого современного мессенджера будет похерено, не говоря уже о сайтах и текстовых редакторах.
Нет, не пофиг. Просто это не самые используемые части unicode. Это к тому, что получить кодпоинт из сурроганой пары utf-16 это, мало того, что очень просто, так это еще и не придется делать очень часто. А вот в utf-8 с ее последовательностями... Ну ты понял.