The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Новая версия набора компиляторов LLVM 3.6"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Есть идеи по улучшению форума и сайта ? Пишите.
. "Новая версия набора компиляторов LLVM 3.6" +1 +/
Сообщение от Аноним (-), 28-Фев-15, 12:44 
UTF-32 нужна потому, что в ней все символы занимают ровно по 32 бита. Т.е. utf32_str[N] вернёт ровно N+1й символ. Удобнее работать. А в UTF-8, чтобы определить где начинается N-й символ, нужно прочитать все символы до него. Зато UTF-8 компактнее и совместим с ASCII.

UTF-16 существует по историческим причинам. Раньше юникод был 16-битным, и многие операционки и кроссплатформенные языки (та же Java) оказались жёстко завязаны на то, что широкий символ занимает 16 бит. Когда этого размера стало недостаточно, для них пришлось вводить специальную кодировку, UTF-16, в которой каждый элемент занимает 16 бит, но некоторые символы занимают 1 элемент, а некоторые - 2. Имеющихся у UTF-32 преимуществ перед UTF-8 эта кодировка не имеет, т.к. в ней тоже приходится читать всю строку, чтобы найти N-й символ (зато имеет недостатки обеих кодировок), но её пришлось вводить, чтобы не ломать обратную совместимость переходом на UTF-32.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Новая версия набора компиляторов LLVM 3.6, opennews, 28-Фев-15, 01:01  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру