Подтвердить что ты не робот

Что мне нужно знать о Unicode?

Будучи разработчиком приложения, мне нужно знать Unicode?

4b9b3361

Ответ 1

Unicode - это стандарт, который определяет числовые коды для глифов, используемых в письменной связи. Или, как они говорят сами:

Стандарт для цифровых представление используемых символов в письменном виде языки. Unicode обеспечивает единую средства для хранения, поиска и обмен текстовым текстом на любом языке. Это используется всеми современными компьютерами и основа для обработки текста на интернет. Unicode разработан и поддерживаемый Консорциумом Юникод.

Есть много распространенных, но легко избежать ошибок программирования, совершенных разработчиками, которые не удосужились просвещать себя о Unicode и его кодировках.

Некоторые ключевые понятия, о которых вы должны знать, следующие:

  • Glyphs - конкретная графика, используемая для представления написанных символов.
  • Состав - объединение глифов для создания другого глифа.
  • Encoding — преобразование Unicode указывает на поток байтов.
  • Сочетание - сравнение строк Unicode с учетом локали.

Ответ 3

Рискуя просто добавить другую ссылку, unicode.org - впечатляющий ресурс.

Короче говоря, это замена для ASCII, предназначенная для обработки буквально каждого персонажа, когда-либо используемого людьми. В Unicode есть всевозможные схемы кодирования для обработки всех этих символов. UTF-8, который в настоящее время является более или менее стандартным, очень тяжело остается одним байтом на символ и идентичен ASCII для первых 7 бит.

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

Ответ 4

Эта статья от Джоэла Спольского должна вам очень помочь.

Ответ 5

Юникод - это промышленный согласованный стандарт для последовательного представления текста, способного представлять мировые системы символов. Все разработчики должны знать об этом, поскольку глобализация вызывает все большую озабоченность.

Ответ 6

Один (открытый) источник кода для обработки Unicode ICU - компоненты интернационализации для Unicode. Он включает ICU4J для Java и ICU4C для C и С++ (представляет собой интерфейс C, использует компилятор С++).

Ответ 7

Unicode - это набор символов, который отличается от ASCII (который содержит только буквы для английского языка, 127 символов, одна треть из которых фактически является непечатаемыми управляющими символами) содержит около 2 миллионов символов, включая символы всех известных языков (китайский, Русский, греческий, арабский и т.д.) И некоторые языки, о которых вы, вероятно, никогда не слышали (даже много символов мертвого языка, которые больше не используются, но полезны для архивирования древних документов).

Поэтому вместо того, чтобы иметь дело с десятками разных кодировок символов, у вас есть одна кодировка для всех (что также упрощает смешивание символов с разных языков в пределах одной текстовой строки, так как вам не нужно переключать кодировку где-то в середине текстовой строки). На самом деле еще осталось много места, у нас далеко не все 2 миллиона персонажей; Консорциум Unicode мог легко добавлять символы еще на 100 языков, даже не опасаясь исчерпать пространство символов.

Практически любая книга на любом языке, который вы можете найти в библиотеке сегодня, может быть выражена в Unicode. Unicode - это имя самой кодировки, как она выражается как "байты" - это другая проблема. Существует несколько способов написания символов Юникода, таких как UTF-8 (от одного до шести байтов - один символ, в зависимости от номера символа, английский - почти всегда один байт, другие римские языки могут быть два или три, возможно, китайский/японский), UTF-16 (большинство символов - два байта, некоторые редко используемые - четыре байта) и UTF-32, каждый символ - четыре байт. Есть и другие, но они являются доминирующими.

Unicode - это кодировка по умолчанию для многих новых ОС (в Mac OS X почти все есть Unicode) и языки программирования (Java использует Unicode в качестве кодировки по умолчанию, обычно UTF-16, я слышал, что Python делает это также и будет использовать или уже делает используйте UTF-32). Если вы когда-нибудь планируете написать приложение, которое должно отображать, хранить или обрабатывать что-либо, кроме простого текста на английском языке, лучше использовать Unicode, тем лучше.

Ответ 9

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

В отличие от других схем кодирования символов (например, ASCII или стандартов ISO-8859), Unicode ничего не говорит о представлении этих символов в байтах; он просто дает универсальный набор идентификаторов персонажам. Поэтому неправильно говорить, что Unicode является "16-разрядной заменой для ASCII".

Существуют различные схемы кодирования, которые могут представлять произвольные символы Unicode в байтах, включая UTF-8, UTF-16 и другие.

Ответ 10

Вам не нужно изучать юникод, чтобы использовать его, это адская сложная норма. Вам просто нужно знать основные проблемы и как ваши инструменты программирования справляются с этим. Чтобы узнать об этом, проверьте ссылку Galwegian и ваш язык программирования и документацию ide.

E.G:

Вы можете преобразовать любой символ с латинского-1 в unicode, но он не работает по-другому для всех персонажей. PHP позволяет вам теперь, когда некоторая функция (например, stristr) не работает с unicode. Python объявляет строку unicode таким образом: u "Hello World".

Это то, что вы должны знать.

Зная, что, если у вас нет хорошей причины не использовать Юникод, просто используйте его.