Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировки (UTF-8 vs UTF-16 vs UTF-32) / 11 сообщений из 11, страница 1 из 1
13.12.2017, 13:01
    #39568939
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
Решил разобраться с сабжем. Почитал статейки и остались вопросы.

UTF-8 и UTF-16 это кодировки с переменной длинной

UTF-8: если номер в unicode укладывается в диапазон 2^8-1 будет использоваться 1 байт, если укладывается в 2^16-1 - то 2, иначе 4
UTF-16: если номер в unicode укладывается в диапазон 2^16-1 будет использоваться 2 байта
UTF-32: каждый символ кодируется 4-мя байтами

Правильно ли я понимаю, что если в случае UTF-8 кодировки будет хотя бы один символ должен быть закодирован как 2 байта, то все символы будут закодированы как 2 байта?

Как программа читающая файл может понять сколькими символами кодируется каждое слово в UTF-8 ?
...
Рейтинг: 0 / 0
13.12.2017, 13:07
    #39568949
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
questionerПравильно ли я понимаю, что если в случае UTF-8 кодировки будет хотя бы один символ должен быть закодирован как 2 байта, то все символы будут закодированы как 2 байта?
Нет.

questionerКак программа читающая файл может понять сколькими символами кодируется каждое слово в UTF-8 ?
Ну, вот же наглядная таблица в разделе Description
https://en.wikipedia.org/wiki/UTF-8
В зависимости от бит первого байта читатель данных может узнать сколько байтов ему нужно прочесть чтобы сформировать символ.
...
Рейтинг: 0 / 0
13.12.2017, 13:11
    #39568953
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
questionerUTF-8 и UTF-16 это кодировки с переменной длиннойЛюбая кодировка юникода - "переменной длины" ибо составные символы.UTF-8: если номер в unicode укладывается в диапазон 2^8-1 будет использоваться 1 байт1-127. 128-255 не используются юникодом ибо куча однобайтовых кодировок.если укладывается в 2^16-1 - то 2два байта - первые 2048 кодовиначе 4или три или четыре.Правильно ли я понимаю, что если в случае UTF-8 кодировки будет хотя бы один символ должен быть закодирован как 2 байта, то все символы будут закодированы как 2 байта?Разумеется, неправильно.
В utf8 каждый код использует ровно столько байт, сколько требуется.

P.S. Вроде, схема кодирования UTF8 во всяких вики - совершенно прозрачная ...
Что там непонятного-то?
...
Рейтинг: 0 / 0
13.12.2017, 23:17
    #39569297
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
BlazkowiczquestionerПравильно ли я понимаю, что если в случае UTF-8 кодировки будет хотя бы один символ должен быть закодирован как 2 байта, то все символы будут закодированы как 2 байта?
Нет.

questionerКак программа читающая файл может понять сколькими символами кодируется каждое слово в UTF-8 ?
Ну, вот же наглядная таблица в разделе Description
https://en.wikipedia.org/wiki/UTF-8
В зависимости от бит первого байта читатель данных может узнать сколько байтов ему нужно прочесть чтобы сформировать символ.


получается, что
если 1 бит, то байт начинается с 0
если 2 - с 110
если 3 - с 1110
если 4 - с 11110

А зачем остальные байты начинаются с 10 ?
...
Рейтинг: 0 / 0
14.12.2017, 06:06
    #39569348
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
...
Рейтинг: 0 / 0
30.12.2017, 12:58
    #39578203
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
Blazkowicz,

а это точно относится к моему вопросу?
...
Рейтинг: 0 / 0
30.12.2017, 13:02
    #39578204
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
https://ru.wikipedia.org/wiki/UTF-32#Неиспользование_UTF-32_в_HTML5 Стандарт HTML5 гласит, что «авторы не должны использовать UTF-32, поскольку алгоритмы определения кодировки, описанные в данной спецификации, не отличают его от UTF-16».
...
Рейтинг: 0 / 0
30.12.2017, 13:04
    #39578205
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
...
Рейтинг: 0 / 0
30.12.2017, 13:29
    #39578214
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
questionerа это точно относится к моему вопросу?
А вы точно до конца дочитали?

Self-synchronizing_codein UTF-8, bit patterns 0xxxxxxx and 11xxxxxx are synchronizing words used to mark the beginning of the next valid character
...
Рейтинг: 0 / 0
10.01.2018, 01:42
    #39581397
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
Blazkowiczquestionerа это точно относится к моему вопросу?
А вы точно до конца дочитали?

Self-synchronizing_codein UTF-8, bit patterns 0xxxxxxx and 11xxxxxx are synchronizing words used to mark the beginning of the next valid character

Так а концептуально это зачем? Чтобы валидировать? На первый взгляд небережно по отношению к байтам, можно же и компактнее было сделать
...
Рейтинг: 0 / 0
10.01.2018, 04:14
    #39581404
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
Концептуально это позволяет делать быстрый разбор и гарантирует бинарную сортировку кодовых точек при использовании байтовых алгоритмов сортировки.

P.S. Ну ей-богу, всё разжёвано в тыртырнетах - зачем вымучивать из себя вопросы?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировки (UTF-8 vs UTF-16 vs UTF-32) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]