Смена пола и расы одним кликом

Сегодня мы узнаем, как Юникод трудится не только на поприще объединения носителей разных письменностей и языков, но и распространяет идеи толерантности и гендерного равноправия среди смайликов.

Вообще, одна из базовых концепций, заявленных при создании Юникода, это простота. То есть, конечно, базовая спецификация содержит около тысячи страниц, плюс три десятка технических приложений. И это без каталога из сотен тысяч символов со всеми их характеристиками. Но вот сам итоговый текст в юникодовой кодировке, он простой и незамутнённый. Без всяких знаков форматирования, контрольных символов и другого мусора. С ним легко работать и обрабатывать. Ну, если про диакритику не вспоминать. И не задумываться про все возможные реализации UTF. А так всё хорошо.

Потихоньку, Юникод начал продавать душу и простоту ещё давно. То селекторы начертания введут. То региональные индикаторы из которых можно лепить коды стран, типа «RU» и «IT», а айфончик будет их заменять на флаги (как будто миллиона не использованных символов мало было для того, чтобы ввести отдельные флаги).

Но тут подоспели эмоджи. И большинство населения земли стремительно переходит с общения с помощью старых письменностей на общение сугубо с помощью эмоджи. Чтобы не отстать от прогресса, Юникод, так же, становится всё больше не стандартом кодирования различных алфавитов, а стандартом кодирования смайликов и эмоджи. Каким будет светлое будущее, уже сейчас можно представить с помощью черновика стандарта UTS-52.

Все символы-эмоджи в Юникоде описаны по возможности нейтрально. Например, «человек на лыжах». Но при выводе на экран, выводится конкретный лыжник. Обычно, это белый джентльмен с достатком выше среднего. Что не всем, конечно, может нравится. Первой ласточкой стала возможность менять цвет кожи. Можно было сделать из лыжника афро-американца, афро-азиата или афро-африканца, наконец. Хотя зачем в Африке лыжи?

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

Некоторые эксперты предсказывают появление модификатора «копуляция», которым можно будет соединять различные символы (например, «котик с глазами сердечками» и «латинская буква L»), а также выстраивать с его помощью цепочки.

Узнать, как всё это будет из первых рук можно на официальном сайте. Либо прочитать русский перевод на сайте Юникод Тэйбл.

Юникод Тэйбл — самый лучший Тэйбл об Юникоде в мире!

JavaScript, суррогатные пары и фекалии

Если кратко: JavaScript не поддерживает суррогатные пары. Что в общем и правильно, так как в большинстве случаев это не нужно, а только лишние расходы. Однако, в меньшинстве случаев из-за этого придётся повозиться.

Теперь рассмотрим подробнее, что означает этот набор слов.

UTF-16 vs UCS-2

Как, наверняка, знают все здесь присутствующие, строки в компьютерах представляются, как последовательность байтиков. А каким образом эти байтики соответствуют буковкам, это определяет кодировка.

Старые добрые кодировки, вроде Windows-1251 были однобайтными. Одному символу — один байт. Работать с ними было одно удовольствие. Хочешь узнать длину строки (количество символов): это просто количество байт. Нужен 5-й символ: просто нужен пятый байт от начала строки. Единственный минус: в нашем многополярном мире 256 различных символов, это слишком мало. Особенно для китайцев с их тысячами иероглифов.

Поэтому теперь мы все любим Unicode. В юникоде много разных кодировок на все случаи жизни. Вот, например, UTF-8: в нём можно закодировать любой Unicode-символ хитрой переменного размера последовательностью байт. При этом базовая ASCII в нём остаётся такого же вида, как и в старых кодировках. Можно читать английские тексты не думая о кодировках, исходники программ и HTML/XML файлы сохраняют свою структуру, а наиболее популярные символы занимают меньше места, чем всякие иероглифы, что тоже приятно.

Неудобно его только обрабатывать. Чтобы узнать длину строки или найти N-й символ, нужно проходить по всем байтам сначала и производить над каждым разные вычисления. Что напрягает. Поэтому в памяти строки лучше хранить в какой-нибудь кодировке фиксированного размера.
Остальной текст под катом

Когда евро — не евро

Начинаем новую рубрику «пятиминутка ликбеза с сайтом Таблица символов Юникода»

Сегодня посмотрим на раздел «Управляющие символы С1», к которому относятся символы с кодами от 0080 до 009F. То есть блок, идущий сразу после ASCII (первые 128 символов).

Этот раздел был унаследован Юникодом от кодовой страницы ISO 8859-1. Сама же ISO 8859-1 (также известная, как Latin-1), основана на символьном наборе для терминалов. В следствии чего, первые 32 символа были выделены для различных терминальных команд. То есть, «разрешение разрыва строки», «запрещение разрыва строки», «обратный перевод строки», «символ-заполнитель» и остальной допотопный треш.

На Latin-1 также раньше строились и другие 8-битные кодировки, в частности Windows-1252, использовавшаяся в Windows для западноевропейских алфавитов.

Однако, Microsoft, как всегда, сторонние стандарты использует, но только так, как хочет. Там решили, что в Latin-1 не попали многие нужные и ненужные, но забавные, символы. Например, не попал знак евро (€), что всех очень напрягало, так как цены на сайтах писать не удобно. Зато целых тридцать две позиции занимают какие-то символы для терминалов. Кому они нужны? На терминалах-то и Windows нету.

Остальной текст под катом

Таблица символов Юникода — новые горизонты

А тем временем антисоциальная сеть нового поколения «Таблица символов Юникода» развивается бешеными темпами.

Уже 5 000 пользователей каждый день заходят на сайт с одним им известными целями.

Как показала практика, добавление новых фич и фишек на сайт не даёт никакого прямого эффекта. А вот если просто забросить его на полгода, то посещаемость сразу начинает стабильно расти.

Чтобы как-то сбить этот бурный рост, с которым уже не справляется наш дохленький сервер, мы собираемся в ближайшее время добавить множество новых возможностей.

Из того, что мы успели сделать в последнее время:

1. Таблица символов, наконец, показывает действительно, практически, все символы, а не квадратики. Это достигается использованием нормального шрифта, а не того барахла, которое стоит по умолчанию во всех операционных системах. Чтобы не слишком нагружать пользовательский канал, шрифт подгружается не целиком, а постепенно, нужными частями.

2. Теперь русские названия символов, это, в большинстве своём, действительно, названия. А не треш из гугло-переводчика.

3. Благодаря иностранным волонтёрам у нас теперь есть интерфейс на тайском, китайском и украинском.

4. И ещё много приятных мелочей.

Из того, что запланировано:

1. Добавление следующей плоскости из стандартна, то есть символы после 65 536. На практике, это совершенно бессмысленная мешанина из иконок типа «самолётик» и «домик». Но для сообщений вконтакте самое то.

2. Множество контента с описаниями символов, разделов, алфавитов и много чего ещё.

3. Обучающие статьи.

4. Новые забавные разделы символов.

5. И ещё множество того, чего мы ещё сами не знаем.

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

Прими участие в переводе Юникода и получи уважение!

unicode-table.com

Сайт «Таблица символов Юникода», это не только триумф дизайна над разумом, это ещё и кладезь полезной информации по символам из стандарта Unicode.

Теперь вы можете самостоятельно принять участие в проекте и получить респект и уважение, а может даже место на странице эбаут.

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

Вы можете помочь проекту одним из следующих способов:

  • Перевести его на какой-либо из языков
  • Исправить обнаруженные неточности
  • Уточнить и дополнить имеющиеся данные
  • Добавить новые интересные наборы символов
  • Написать статьи о конкретных символах, разделах, языках и странах
  • Улучшить поиск по сайту

Либо просто прислать денег.

Всем чмоки .