Типографика → Вышел стандарт Unicode 6.1, добавлено 732 новых символа
31 января официально представлена новая версия стандарта Unicode 6.1.0, это минорный релиз по сравнению с Unicode 6.0.0 (октябрь 2010 г.).
Последняя версия включает 732 новых символа, в том числе семь новых письменностей: китайские, азиатские и африканские. Среди 110 тыс. символов Unicode можно найти глифы на любой вкус, например, вот символ LOVE HOTEL (U+1F3E9):

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

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

Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.
Разработка под Apple iOS → Полноценная поддержка юникода в SQLite для iOS. Пример приложения из песочницы
Здравствуйте. В этой статье я опишу процесс создания простейшего приложения для iOS и внедрение в него используемого мной метода для обеспечения корректной работы с русским (и не только) языком таких SQLite-конструкций, как UPPER/LOWER, LIKE или ORDER BY.
Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.
Ниже очень подробная инструкция с картинками.
Описанный метод использовался при разработке в 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:

Обычный метод перенаправления трафика — добавить запись в файл 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 бит в секунду. Кстати, те, кто покупал первые модемы, помнят, что скорость значилась именно в бодах – единицах измерения имени Эмиля Бодо, изобретателя кода и высокоскоростного телеграфного аппарата.
Как и многие серьезные изменения, процесс перехода потребовал серьезной подготовки и имел большую «подводную» часть – перед разработчиками стояла задача обработать 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 мне подсказывает, что они есть там, доступные по длинному нажатию — просто не нарисованы с той же явственностью, с какой изображены цифры в верхнем ряду):
![kedDroid, S03E07 [скриншот]](http://keddr.com/wp-content/uploads/2011/06/go-keyboard-4.jpg)
Как ни странно, азиатом же оказался и тот, кто помог мне найти выход из этого тупика. То был Jon Quach с бодрым видеообзором программы Smart Keyboard:
Под Windows и под Mac подспорьем поклонника типографики является раскладка Бирмана или другие аналогичные ей средства, а пользователи Linux используют несколько более
Тогда мне ещё казалось, что тупик безвыходен, совершенно безвыходен. Стандартная клавиатура HTC Sense не имеет редактируемой раскладки нестандартных символов, а её собственный набор их — далёк от желаемого. Множество других клавиатур, имеющихся в Android Market, также не содержат клавиши неразрывного пробела, не содержат достойных, полноценных кавычек. А некоторые плоды труда
![kedDroid, S03E07 [скриншот]](http://keddr.com/wp-content/uploads/2011/06/go-keyboard-4.jpg)
Как ни странно, азиатом же оказался и тот, кто помог мне найти выход из этого тупика. То был Jon Quach с бодрым видеообзором программы Smart Keyboard:
Python → ConfigParser и Unicode
В Python есть очень удобный модуль для сохранения и чтения ini-подобных конфигурационных файлов, который называется ConfigParser.
У меня при его использовании возникла проблема, связанная с сохранением в файл Unicode-строк. В некоторых трудноуловимых случаях (например, у меня это проявилось при работе приложения под Windows XP) при чтении или записи таких параметров выскакивает ошибка конвертации строк.
В интернете мне не удалось найти готовых решений, хотя вопросов о том «как сделать чтобы всегда работало» довольно много — обычно отвечают в духе «просите автора модуля это исправить».
Хочу предложить свое решение для тех, кто использует Python 2.X — оно довольно простое и помогает решить эту проблему.
У меня при его использовании возникла проблема, связанная с сохранением в файл Unicode-строк. В некоторых трудноуловимых случаях (например, у меня это проявилось при работе приложения под Windows XP) при чтении или записи таких параметров выскакивает ошибка конвертации строк.
В интернете мне не удалось найти готовых решений, хотя вопросов о том «как сделать чтобы всегда работало» довольно много — обычно отвечают в духе «просите автора модуля это исправить».
Хочу предложить свое решение для тех, кто использует Python 2.X — оно довольно простое и помогает решить эту проблему.
JavaScript → Как отобразить страницу в UTF-8, несмотря на windows-1251 в HTTP-заголовке
Есть у меня старый сайт на Народ.Ру, и недавно я закинул туда несколько статей — как это я теперь делаю в UTF-8. Кодировка была указана в теге
Что делать? Переходить на другой хостинг? Само собой, но пока руки не дошли, хотелось добиться результата тут. Перекодировать тексты? Более достойным и интересным показалось поставить Javascript-«заплатку».
Способа переключить кодировку из Javascript я не нашёл. Остался вариант перекодировать текст скриптом, запускаемым по событию
Итак, браузер получает текст в UTF-8, разбивает UTF-последовательности на группы по 8 бит и трактует их как коды символов в кодировке Windows-1251. Чтобы восстановить читаемость текста, нужно получить эти коды, объединить их в UTF-последовательности, а из них — восстановить Unicode-коды символов и вернуть последние посредством числовых ссылок HTML на символы. В этом деле обнаружились несколько закавык.
meta, но, взглянув на страницы, я увидел крякозябры: «Р§С‚Рѕ-то случилось.» Оказывается, Народ.Ру шлёт HTTP-заголовок Content-Type: text/html; charset=windows-1251 и это на нём никак не отключается. Пользователь может получить читабельный текст — только если догадается вручную переключить кодировку в браузере.Что делать? Переходить на другой хостинг? Само собой, но пока руки не дошли, хотелось добиться результата тут. Перекодировать тексты? Более достойным и интересным показалось поставить Javascript-«заплатку».
Способа переключить кодировку из Javascript я не нашёл. Остался вариант перекодировать текст скриптом, запускаемым по событию
onready документа.Итак, браузер получает текст в UTF-8, разбивает UTF-последовательности на группы по 8 бит и трактует их как коды символов в кодировке Windows-1251. Чтобы восстановить читаемость текста, нужно получить эти коды, объединить их в UTF-последовательности, а из них — восстановить Unicode-коды символов и вернуть последние посредством числовых ссылок HTML на символы. В этом деле обнаружились несколько закавык.