войти зарегистрироваться

ТипографикаВышел стандарт Unicode 6.1, добавлено 732 новых символа

31 января официально представлена новая версия стандарта Unicode 6.1.0, это минорный релиз по сравнению с Unicode 6.0.0 (октябрь 2010 г.).

Последняя версия включает 732 новых символа, в том числе семь новых письменностей: китайские, азиатские и африканские. Среди 110 тыс. символов Unicode можно найти глифы на любой вкус, например, вот символ LOVE HOTEL (U+1F3E9):


PythonЮникод для чайников

logo
Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.

Разработка под Apple iOSПолноценная поддержка юникода в SQLite для iOS. Пример приложения из песочницы

Здравствуйте. В этой статье я опишу процесс создания простейшего приложения для iOS и внедрение в него используемого мной метода для обеспечения корректной работы с русским (и не только) языком таких SQLite-конструкций, как UPPER/LOWER, LIKE или ORDER BY.

Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.

Ниже очень подробная инструкция с картинками.

Информационная безопасностьМожно ли верить своим глазам? (Unicode в именах файлов)

Несколько дней назад один из наших пользователей прислал образец (SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, определяется как TrojanDropper:Win32/Vundo.L). Это троян для фишинга с сайтов vk.com и vkontakte.ru, запросы на которые перенаправляются на 92.38.209.252 необычным способом.

Обычный метод перенаправления трафика — добавить запись в файл hosts, который находится в папке %SystemRoot%\system32\drivers\etc. Однако, когда мы открываем этот файл на заражённом компьютере, то там нет никаких записей для vk.com и vkontakte.ru:


Блог компании Mail.Ru GroupПочта Mail.Ru (даже если ты китаец)

Хотим поделиться радостью: мы успешно перевели нашу почту на UTF-8. Теперь можно спокойно переписываться с арабами, китайцами, японцами, греками, грузинами, писать письма на иврите и идише, блеснуть знанием финикийской письменности или зашифровать послание нотами. И при этом быть уверенным, что адресат получит именно то, что ему отправили, а не квадратики или «кракозябры».

Как и многие серьезные изменения, процесс перехода потребовал серьезной подготовки и имел большую «подводную» часть – перед разработчиками стояла задача обработать 6 петабайт писем в более чем сотне миллионов ящиков. Первые эксперименты начались осенью 2010 года, и весной 2011 все ящики были успешно переведены на новую систему. Одновременно с этим символично сменился домен проекта «почта»: вместо основного домена win.mail.ru и исторических koi.mail.ru и mac.mail.ru, которые выдавали сайт в соответствующих кодировках, теперь используется e.mail.ru, выдающий все страницы в UTF-8. Вся почта также хранится, обрабатывается и выводится в UTF-8. Это означает, что в письмах можно использовать любые живые и мертвые языки, математические и нотные символы, причем как в виде plain-text, так и с форматированием.

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

Вначале была цифра


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

Не считая в чистом виде двоичной азбуки Морзе, первым кодом, превратившимся в стандарт, стал код Бодо. Этот 5-битный синхронный код позволял телеграфам передавать примерно 190 знаков в минуту (а в последствие до 760) или 16 бит в секунду. Кстати, те, кто покупал первые модемы, помнят, что скорость значилась именно в бодах – единицах измерения имени Эмиля Бодо, изобретателя кода и высокоскоростного телеграфного аппарата.

Разработка под AndroidКак подружить SQLite андроида с языком, отличным от английского


Здравствуй, дорогой читатель!
В этой статье я хочу затронуть проблему хранения кириллических данных в SQLite, попробовать разобраться с Android NDK, и вообще зажить прекрасной жизнью! Однако, с этого момента, считаю важными первые два пункта. О них и поговорим.

Известная проблема SQLite состоит в том, что он не любит никаких символов, кроме латинских, поэтому выполняется такое [1]:
SELECT "ы" LIKE "Ы";
0
SELECT "s" LIKE "S";
1


Такая проблема актуальна для наших широт, и может быть решена пользовательскими функциями.
Но Android не поддерживает функций, поэтому создаются костыли.

AndroidМечта любителя типографики сбывается: пополняем клавиатуру мобильника (снабжённого Android) русскими кавычками, тире, символами параграфа и приближённого равенства, буквами Имперской Речи

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

Под Windows и под Mac подспорьем поклонника типографики является раскладка Бирмана или другие аналогичные ей средства, а пользователи Linux используют несколько более сложные ([1], [2]), но всё же действенные изыски. И только под Android мне никак не удавалось (вплоть до сегодняшнего дня) достигнуть желаемого. Это было настоящим кошмаром, особенно когда в конце мая 2011 года кишечная инфекция привела меня на больничную койку в изоляторе, где ноутбуки были запрещены правилами внутреннего распорядка. Целую неделю пришлось валяться в обнимку с HTC Desire, купленным в прошлом году, и мучительно страдать от необходимости долгое время обходиться вообще без типографики, и даже после выздоровления не иметь возможности исправить её там, где реплики не поддаются исправлению (комментарии на Хабрахабре и в LiveJournal, микроблог в Твиттере, ответы на Формспринге…).

Тогда мне ещё казалось, что тупик безвыходен, совершенно безвыходен. Стандартная клавиатура HTC Sense не имеет редактируемой раскладки нестандартных символов, а её собственный набор их — далёк от желаемого. Множество других клавиатур, имеющихся в Android Market, также не содержат клавиши неразрывного пробела, не содержат достойных, полноценных кавычек. А некоторые плоды труда Юго-Восточной Азии даже и частью русских букв жертвуют — например, ознакомившись с одним из обзоров kedDroid, вы узнаете, что раскладка Go Keyboard не содержит твёрдого знака и буквы «ё» (и только XHunter мне подсказывает, что они есть там, доступные по длинному нажатию — просто не нарисованы с той же явственностью, с какой изображены цифры в верхнем ряду):

[скриншот]

Как ни странно, азиатом же оказался и тот, кто помог мне найти выход из этого тупика. То был Jon Quach с бодрым видеообзором программы Smart Keyboard:

PythonConfigParser и Unicode

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

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

В интернете мне не удалось найти готовых решений, хотя вопросов о том «как сделать чтобы всегда работало» довольно много — обычно отвечают в духе «просите автора модуля это исправить».

Хочу предложить свое решение для тех, кто использует Python 2.X — оно довольно простое и помогает решить эту проблему.

JavaScriptКак отобразить страницу в UTF-8, несмотря на windows-1251 в HTTP-заголовке

Есть у меня старый сайт на Народ.Ру, и недавно я закинул туда несколько статей — как это я теперь делаю в UTF-8. Кодировка была указана в теге meta, но, взглянув на страницы, я увидел крякозябры: «Р§С‚Рѕ-то случилось.» Оказывается, Народ.Ру шлёт HTTP-заголовок Content-Type: text/html; charset=windows-1251 и это на нём никак не отключается. Пользователь может получить читабельный текст — только если догадается вручную переключить кодировку в браузере.

Что делать? Переходить на другой хостинг? Само собой, но пока руки не дошли, хотелось добиться результата тут. Перекодировать тексты? Более достойным и интересным показалось поставить Javascript-«заплатку».

Способа переключить кодировку из Javascript я не нашёл. Остался вариант перекодировать текст скриптом, запускаемым по событию onready документа.

Итак, браузер получает текст в UTF-8, разбивает UTF-последовательности на группы по 8 бит и трактует их как коды символов в кодировке Windows-1251. Чтобы восстановить читаемость текста, нужно получить эти коды, объединить их в UTF-последовательности, а из них — восстановить Unicode-коды символов и вернуть последние посредством числовых ссылок HTML на символы. В этом деле обнаружились несколько закавык.

JavaScriptМожно ли в названии переменной использовать $ (знак доллара)?

Проголосовало 470 человек. Воздержалось 142 человека.