2009-09-01 3 views
1

Кажется, это самая запутанная проблема для меня.Как выделяется юникод для разных языков?

Как начинается распознавание нового персонажа?

Как распределяются коды?

Возьмем, например, китайский символ.

Какой диапазон кодовых точек выделяются им

и почему он таким образом выделяется, какой-либо причине?

EDIT: Plz описать это своими словами, а не ссылкой.

Или вы можете рекомендовать книгу, в которой говорится о Юникоде систематически, что, по вашему мнению, дало понять (это самое важное).

+1

Почему «опишите это своими словами, а не ссылкой»? Особенно, если цитата хорошая. –

ответ

5

Ответственность за распределение кодовых слов несет Unicode Consortium. Если вам нужен новый символ или кодовая страница, вы можете подать заявку там. См. Примеры proposal pipeline.

3

Chapter 2 спецификации Unicode определяет общую структуру Unicode, в том числе то, что диапазоны выделяются для какого рода символов.

+1

Я рекомендую вам ознакомиться с стандартом Unicode 5. Это один из лучших письменных стандартов, которые я когда-либо читал. Начальные главы дают очень читаемое введение в каждый аспект Unicode и проблемы с набором символов в целом. И он свободно доступен в формате PDF в режиме онлайн! – MtnViewMark

0

Лучше сказать Кодировка символов вместо Codepage

Персонаж Кодирование представляет собой способ отображения какой-то характер некоторых данных (а также наоборот!)

Как говорит Википедия :

Система кодирования символов состоит из кода, который соединяет каждый символ из данного репертуара с чем-то другим, например последовательность натуральных чисел, октетов или электрических импульсов, чтобы облегчить itate передачи данных (как правило, цифры и/или текст) через телекоммуникационные сети или хранение текста в компьютерах

Самые популярные кодировки символов являются ASCII, UTF-16 и UTF-8

ASCII

Первая кодовая страница, которая широко используется в компьютерах. в ANSI для каждого символа выделяется только один байт. Поэтому ANSI может иметь очень ограниченный набор символов (английские буквы, цифры, ...)

Как я уже говорил, ASCII использовался в старых операционных системах, таких как MS-DOS. Но ASCII не мертв и все еще используется. Когда у вас есть txt-файл с 10 символами и 10 байтов, у вас есть файл ASCII!


UTF-16

В UTF-16, два байта выделяется из символа. Таким образом, мы можем иметь 65536 различных символов в UTF-16!

Microsoft Windows использует UTF-16 внутренне.


UTF-8

UTF-8 является еще одним популярным способом для кодирования символов. он использует байты переменной длины (от 1 до 4 байтов) для символов. Он также совместим с ASCII, потому что использует 1 байт для символов ASCII.

системы на основе Unix Большинство использует UTF-8


Языки программирования не зависят от кодовых страниц. Возможно, конкретная реализация языка программирования не поддерживает кодовые страницы (например, Turbo C++)

Вы можете использовать любую кодовую страницу на современных языках программирования. У них также есть инструменты для преобразования кодовых страниц.

Существует разные версии Unicode, как UTF-7, UTF-8, ... Вы можете прочитать о них here (рекомендовано как!) И, возможно, для более формальных деталей here

+3

UTF-16 имеет набор суррогатов, которые представляют собой в основном 2 16-битных числа в строке, которые используются для представления символов вне базовой многоязычной плоскости (BMP) - где BMP - это символы, которые могут быть представлены 16- бит. Unicode - это 21-битная система. –

+1

Кроме того, Unicode 16 не является стандартным термином. UCS-2 - старый термин, относящийся ко времени, когда BMP был всем, что было в Unicode; UTF-16 используется в наши дни (AFAIK, даже Microsoft). –

+0

@ Jonathan. Да. вы были правы. Unicode16 - это термин UTF-16! ;) – Isaac

1

Unicode является стандарт задается Unicode Consortium , Спецификация определяет набор символов Юникода, Universal Character Set (UCS) и некоторые кодировки для кодирования этих символов, Unicode Transformation FormatsUTF-7, UTF-8, UTF-16 и UTF-32.

Как начинается распознавание нового персонажа?

Это зависит от кодировки, которая была использована. UTF-16 и UTF-32 представляют собой кодировки с фиксированными длинными кодовыми словами (соответственно 16 и 32 бит), в то время как UTF-7 и UTF-8 имеют переменную длину кодового слова (от 8 до 32 бит) в зависимости от символьной точки, должен быть закодирован.

Как распределяются коды? Возьмем, например, китайский характер. Какой диапазон кодовых точек присваивается им и почему они распределены таким образом по любой причине?

UCS разделяется на так называемый character planes. Первый - Базовая латиница (U + 0000-U + 007F, закодированная как ASCII), вторая - Latin-1 Supplement (U + 0080-U + 00FF, закодированная как ISO 8859-1) и так далее ,

Смежные вопросы