Рубрика «Unicode»

Security Week 45: Эфир замерз в кошельках, миллион фальшивых WhatsApp, бесполезная защита интеллектуальной собственности - 1В мире фанатов технологии блокчейн все очень просто и безопасно. Еще бы, ведь блокчейн так надежен сам по себе, что для обеспечения любых финансовых операций не требует ни регулятора в лице государства, ни банков, ни других надстроек. Мы не будем спорить с тем, что технология лишена многих недостатков и уязвимостей старого мира. Но это вовсе не означает отсутствия у нее собственных слабых мест, которые раньше и вообразить-то было невозможно. В общем, такое дело: из-за уязвимости, обнаруженной в популярном Ethereum-кошельке Parity, замороженными оказались средства в криптовалюте, которые, по разным оценкам, эквивалентны 150-300 миллионам долларов США.Читать полностью »

В ECMAScript 6 представлены два новых флага для регулярных выражений:

  1. y включает режим «липкого» сопоставления.
  2. u включает различные связанные с Unicode опции.

В данной статье объясняется влияние флага u. Эта статья будет Вам полезна, если Вы знакомы с Unicode-проблемами в Javascript.
ECMAScript 6. Регулярные выражения с поддержкой Unicode - 1Читать полностью »

Chrome 58 залатает защиту от омографических атак - 1

Сайт https://www.аррӏе.com/ имеет настоящий сертификат SSL (конечно же, от Let's Encrypt) и помечается в браузере как «надёжный сайт». Но на самом деле это совсем не то, что вы ожидали увидеть. Это просто демонстрация концепции — того, что некоторые современные браузеры отображают названия сайтов в Unicode вместо Punycode и вводят пользователей в заблуждение.

Punycode — это способ представления символов Unicode в названиях хостов с помощью ограниченного подмножества ASCII. Как сказано в RFC3492, Punycode — это вариант реализации более общего алгоритма Bootstring, когда строки, составленные из небольшого набора «базовых» символов (в данном случае, ASCII), могут представлять собой уникальные строки, составленные из большего набора символов (Unicode). Например, домен 短.co превращается в xn--s7y.co.

В вышеупомянутом домене https://www.аррӏе.com/ первую букву хоста можно заменить на кириллический символ «а», символ кириллического алфавита (U+0430), а не ASCII (U+0041). Это старая добрая омографическая атака, с которой давно пытаются бороться разработчики браузеров и регистраторы доменных имён.
Читать полностью »

Эта история произошла почти месяц назад. Постучал ко мне в скайп некий Егор.

Егор: Здравствуйте, фрилансеров ищите?)
Я: А вы что умеете?
Егор: А мы, собственно, толком ничего не умеем и хотим работать за опыт.)

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

Надо пояснить, что это такое. На гитхабе у нас есть репозиторий, куда мы сваливаем свои наработки, а cjCore — это одна из наших библиотек на C++.

Егор клонировал себе либу и попытался её скомпилировать, но не тут-то было. У него возникли проблемы с компиляцией нашей юникодной String.
Читать полностью »

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

Как я добавил 6 символов в Unicode - 1

4 разных использования полузвёздочки для представления оценки 3.5

Unicode – компьютерный стандарт, определяющий, какие символы будут использоваться почти любым компьютером. Он позволяет различным компьютерам показывать текст почти на любом языке и почти с любыми необходимыми символами (до Unicode работа с текстами не на английском была ужасно запутанной). Но Unicode не включает всё. В прошлом июне в комментарии на Hacker News пожаловались, что в Unicode нет символа полузвёздочки, необходимого для рейтингов и обзоров фильмов.
Читать полностью »

Текстовые редакторы, основная задача которых — отображение моноширинного шрифта (например, кода), должны, как и следует из названия, показывать символы одной ширины.
invisible symbols in diff

Читать полностью »

Вчера я шёл куда-то по городу и вдруг задумался, как можно реализовать на JavaScript деление строки по символам при помощи регулярного выражения и с полным учётом Юникода.

После перехода от Perl к JavaScript много лет тому назад, я всё испытывал за свой новый язык некоторый комплекс неполноценности из-за недостаточной поддержки Юникода. За всё то время, пока JavaScript совершал в этом направлении свой большой скачок (при переходе от ES5 к ES6), у меня в закладках осталось несколько хороших статей.

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
JavaScript has a Unicode problem
Unicode-aware regular expressions in ECMAScript 6
ES6 Strings (and Unicode, ) in Depth

В последней из них предлагался рецепт разбиения строки на символы с учётом Юникода при помощи нового оператора ... Читать полностью »

Несколько гиков добились своего

Как обычный вопрос на форуме привёл к добавлению 4½ символов в Юникод - 1

Оказывается, добавить символы в Юникод вполне реально, если потратить достаточно сил и времени. Следует только строго соблюдать процедуру и все правила.

Вчера произошло важное событие: консорциум Unicode опубликовал официальные спецификации нового стандарта Unicode 9.0. Наверное, больше всех радовался этому событию программист Теренс Иден (Terence Eden). Два с половиной года назад (3 декабря 2013 года) он опубликовал вопрос на популярном форуме для разработчиков Hacker News.

Каких полезных символов не хватает в Юникоде?

Теренс высказал идею, что наиболее очевидным кажется отсутствие знака «Питание». Знакомый всем символ Как обычный вопрос на форуме привёл к добавлению 4½ символов в Юникод - 2 определён в стандарте Международной электротехнической комиссии IEC 60417-5009 и примерно с середины 1970-х используется практически на каждом электронном устройстве, где имеется кнопка питания.
Читать полностью »

Принят стандарт Unicode 9.0 - 1

Консорциум Unicode объявил о выходе окончательной версии стандарта Unicode 9.0. В девятую версии Unicode добавлено ровно 7500 новых символов, так что общее количество письменных знаков достигло 128 172.

Уточнены и теперь стандартизированы шесть малоизвестных алфавитов, в том числе письмо американских индейцев и древнекитайское тангутское письмо — вымершая система иероглифов, которая использовалась в государстве Си Ся.

Многие считают, что эмодзи играют всё более важную роль в коммуникациях, поэтому эксперты консорциума Unicode постарались расширить стандартный набор пиктограмм. Всего в стандарт добавлено 72 новых эмодзи.
Читать полностью »

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

Последние версии iOS и Android имеют поддержку более 1200 символов эмодзи, но «десктопный» рынок не может похвастаться такими успехами. Мы же в Badoo хотим и делаем все, чтобы пользователям было комфортно общаться на всех платформах, не имея никаких ограничений в переписке.
Далее я расскажу, каким способом мы добились 100% поддержки эмодзи для веба.
Читать полностью »