|
|
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
Решил разобраться с сабжем. Почитал статейки и остались вопросы. 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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 13:01 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
questionerПравильно ли я понимаю, что если в случае UTF-8 кодировки будет хотя бы один символ должен быть закодирован как 2 байта, то все символы будут закодированы как 2 байта? Нет. questionerКак программа читающая файл может понять сколькими символами кодируется каждое слово в UTF-8 ? Ну, вот же наглядная таблица в разделе Description https://en.wikipedia.org/wiki/UTF-8 В зависимости от бит первого байта читатель данных может узнать сколько байтов ему нужно прочесть чтобы сформировать символ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 13:07 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
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 во всяких вики - совершенно прозрачная ... Что там непонятного-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 13:11 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 23:17 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2017, 06:06 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а это точно относится к моему вопросу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2017, 12:58 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
https://ru.wikipedia.org/wiki/UTF-32#Неиспользование_UTF-32_в_HTML5 Стандарт HTML5 гласит, что «авторы не должны использовать UTF-32, поскольку алгоритмы определения кодировки, описанные в данной спецификации, не отличают его от UTF-16». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2017, 13:02 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2017, 13:04 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
questionerа это точно относится к моему вопросу? А вы точно до конца дочитали? Self-synchronizing_codein UTF-8, bit patterns 0xxxxxxx and 11xxxxxx are synchronizing words used to mark the beginning of the next valid character ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2017, 13:29 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
Blazkowiczquestionerа это точно относится к моему вопросу? А вы точно до конца дочитали? Self-synchronizing_codein UTF-8, bit patterns 0xxxxxxx and 11xxxxxx are synchronizing words used to mark the beginning of the next valid character Так а концептуально это зачем? Чтобы валидировать? На первый взгляд небережно по отношению к байтам, можно же и компактнее было сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 01:42 |
|
||
|
Кодировки (UTF-8 vs UTF-16 vs UTF-32)
|
|||
|---|---|---|---|
|
#18+
Концептуально это позволяет делать быстрый разбор и гарантирует бинарную сортировку кодовых точек при использовании байтовых алгоритмов сортировки. P.S. Ну ей-богу, всё разжёвано в тыртырнетах - зачем вымучивать из себя вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 04:14 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39578203&tid=2122352]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 171ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...