Конвертация unicode zawgyi что это в вайбере
Юникод — это очень большой и сложный мир, ведь стандарт позволяет ни много ни мало представлять и работать в компьютере со всеми основными письменностями мира. Некоторые системы письма существуют уже более тысячи лет, причём многие из них развивались почти независимо друг от друга в разных уголках мира. Люди так много всего придумали и оно зачастую настолько непохоже друг на друга, что объединить всё это в единый стандарт было крайне непростой и амбициозной задачей.
Чтобы по-настоящему разобраться с Юникодом нужно хотя бы поверхностно представлять себе особенности всех письменностей, с которыми позволяет работать стандарт. Но так ли это нужно каждому разработчику? Мы скажем, что нет. Для использования Юникода в большинстве повседневных задач, достаточно владеть разумным минимумом сведений, а дальше углубляться в стандарт по мере необходимости.
В статье мы расскажем об основных принципах Юникода и осветим те важные практические вопросы, с которыми разработчики непременно столкнутся в своей повседневной работе.
Зачем понадобился Юникод?
До появления Юникода, почти повсеместно использовались однобайтные кодировки, в которых граница между самими символами, их представлением в памяти компьютера и отображением на экране была довольно условной. Если вы работали с тем или иным национальным языком, то в вашей системе были установлены соответствующие шрифты-кодировки, которые позволяли отрисовывать байты с диска на экране таким образом, чтобы они представляли смысл для пользователя.
Если вы распечатывали на принтере текстовый файл и на бумажной странице видели набор непонятных кракозябр, это означало, что в печатающее устройство не загружены соответствующие шрифты и оно интерпретирует байты не так, как вам бы этого хотелось.
У такого подхода в целом и однобайтовых кодировок в частности был ряд существенных недостатков:
- Можно было одновременно работать лишь с 256 символами, причём первые 128 были зарезервированы под латинские и управляющие символы, а во второй половине кроме символов национального алфавита нужно было найти место для символов псевдографики (╔ ╗).
- Шрифты были привязаны к конкретной кодировке.
- Каждая кодировка представляла свой набор символов и конвертация из одной в другую была возможна только с частичными потерями, когда отсутствующие символы заменялись на графически похожие.
- Перенос файлов между устройствами под управлением разных операционных систем был затруднителен. Нужно было либо иметь программу-конвертер, либо таскать вместе с файлом дополнительные шрифты. Существование Интернета каким мы его знаем было невозможным.
- В мире существуют неалфавитные системы письма (иероглифическая письменность), которые в однобайтной кодировке непредставимы в принципе.
Основные принципы Юникода
Все мы прекрасно понимаем, что компьютер ни о каких идеальных сущностях знать не знает, а оперирует битами и байтами. Но компьютерные системы пока создают люди, а не машины, и для нас с вами иногда бывает удобнее оперировать умозрительными концепциями, а затем уже переходить от абстрактного к конкретному.
Важно! Одним из центральных принципов в философии Юникода является чёткое разграничение между символами, их представлением в компьютере и их отображением на устройстве вывода.
Вводится понятие абстрактного юникод-символа, существующего исключительно в виде умозрительной концепции и договорённости между людьми, закреплённой стандартом. Каждому юникод-символу поставлено в соответствие неотрицательное целое число, именуемое его кодовой позицией (code point).
Так, например, юникод-символ U+041F — это заглавная кириллическая буква П. Существует несколько возможностей представления данного символа в памяти компьютера, ровно как и несколько тысяч способов отображения его на экране монитора. Но при этом П, оно и в Африке будет П или U+041F.
Это хорошо нам знакомая инкапсуляция или отделение интерфейса от реализации — концепция, отлично зарекомендовавшая себя в программировании.
Получается, что руководствуясь стандартом, любой текст можно закодировать в виде последовательности юникод-символов
записать на листочке, упаковать в конверт и переслать в любой конец Земли. Если там знают о существовании Юникода, то текст будет воспринят ими ровно так же, как и нами с вами. У них не будет ни малейших сомнений, что предпоследний символ — это именно кириллическая строчная е (U+0435), а не скажем латинская маленькая e (U+0065). Обратите внимание, что мы ни слова не сказали о байтовом представлении.
Хотя юникод-символы и называются символами, они далеко не всегда соответствуют символу в традиционно-наивном понимании, например букве, цифре, пунктуационному знаку или иероглифу. (Подробнее смотри под спойлером.)
- U+0000: нулевой символ;
- U+D800–U+DFFF: младшие и старшие суррогаты для технического представления кодовых позиций в диапазоне от 10000 до 10FFFF (читай: за пределами БМЯП/BMP) в семействе кодировок UTF-16;
- и т.д.
- U+0020 (пробел);
- U+00A0 (неразрывный пробел, в HTML);
- U+2002 (полукруглая шпация или En Space);
- U+2003 (круглая шпация или Em Space);
- и т.д.
- U+0300 и U+0301: знаки основного (острого) и второстепенного (слабого) ударений;
- U+0306: кратка (надстрочная дуга), как в й;
- U+0303: надстрочная тильда;
- и т.д.
Что такое символ, чем отличается графемный кластер (читай: воспринимаемое как единое целое изображение символа) от юникод-символа и от кодового кванта мы расскажем в следующий раз.
Кодовое пространство Юникода
Кодовое пространство Юникода состоит из 1 114 112 кодовых позиций в диапазоне от 0 до 10FFFF. Из них к девятой версии стандарта значения присвоены лишь 128 237. Часть пространства зарезервирована для частного использования и консорциум Юникода обещает никогда не присваивать значения позициям из этих специальный областей.
Кодировки
Если мы хотим переслать текст через Интернет, то нам потребуется закодировать последовательность юникод-символов в виде последовательности байтов.
Стандарт Юникода включает в себя описание ряда юникод-кодировок, например UTF-8 и UTF-16BE/UTF-16LE, которые позволяют кодировать всё пространство кодовых позиций. Конвертация между этими кодировками может свободно осуществляться без потерь информации.
Также никто не отменял однобайтные кодировки, но они позволяют закодировать свой индивидуальный и очень узкий кусочек юникод-спектра — 256 или менее кодовых позиций. Для таких кодировок существуют и доступны всем желающим таблицы, где каждому значению единственного байта сопоставлен юникод-символ (см. например CP1251.TXT). Несмотря на ограничения, однобайтные кодировки оказываются весьма практичными, если речь идёт о работе с большим массивом моноязыковой текстовой информации.
Из юникод-кодировок самой распространённой в Интернете является UTF-8 (она завоевала пальму первенства в 2008 году), главным образом благодаря её экономичности и прозрачной совместимости с семибитной ASCII. Латинские и служебные символы, основные знаки препинания и цифры — т.е. все символы семибитной ASCII — кодируются в UTF-8 одним байтом, тем же, что и в ASCII. Символы многих основных письменностей, не считая некоторых более редких иероглифических знаков, представлены в ней двумя или тремя байтами. Самая большая из определённых стандартом кодовых позиций — 10FFFF — кодируется четырьмя байтами.
Обратите внимание, что UTF-8 — это кодировка с переменной длиной кода. Каждый юникод-символ в ней представляется последовательностью кодовых квантов с минимальной длиной в один квант. Число 8 означает битовую длину кодового кванта (code unit) — 8 бит. Для семейства кодировок UTF-16 размер кодового кванта составляет, соответственно, 16 бит. Для UTF-32 — 32 бита.
Если вы пересылаете по сети HTML-страницу с кириллическим текстом, то UTF-8 может дать весьма ощутимый выигрыш, т.к. вся разметка, а также JavaScript и CSS блоки будут эффективно кодироваться одним байтом. К примеру главная страница Хабра в UTF-8 занимает 139Кб, а в UTF-16 уже 256Кб. Для сравнения, если использовать win-1251 с потерей возможности сохранять некоторые символы, то размер, по сравнению с UTF-8, сократится всего на 11Кб до 128Кб.
Для хранения строковой информации в приложениях часто используются 16-битные юникод-кодировки в силу их простоты, а так же того факта, что символы основных мировых систем письма кодируются одним шестнадцатибитовым квантом. Так, например, Java для внутреннего представления строк успешно применяет UTF-16. Операционная система Windows внутри себя также использует UTF-16.
В любом случае, пока мы остаёмся в пространстве Юникода, не так уж и важно, как хранится строковая информация в рамках отдельного приложения. Если внутренний формат хранения позволяет корректно кодировать все миллион с лишним кодовых позиций и на границе приложения, например при чтении из файла или копировании в буфер обмена, не происходит потерь информации, то всё хорошо.
Для корректной интерпретации текста, прочитанного с диска или из сетевого сокета, необходимо сначала определить его кодировку. Это делается либо с использованием метаинформации, предоставленной пользователем, записанной в тексте или рядом с ним, либо определяется эвристически.
В сухом остатке
Информации много и имеет смысл привести краткую выжимку всего, что было написано выше:
- Юникод постулирует чёткое разграничение между символами, их представлением в компьютере и их отображением на устройстве вывода.
- Юникод-символы не всегда соответствуют символу в традиционно-наивном понимании, например букве, цифре, пунктуационному знаку или иероглифу.
- Кодовое пространство Юникода состоит из 1 114 112 кодовых позиций в диапазоне от 0 до 10FFFF.
- Базовая многоязыковая плоскость включает в себя юникод-символы от U+0000 до U+FFFF, которые кодируются в UTF-16 двумя байтами.
- Любая юникод-кодировка позволяет закодировать всё пространство кодовых позиций Юникода и конвертация между различными такими кодировками осуществляется без потерь информации.
- Однобайтные кодировки позволяют закодировать лишь небольшую часть юникод-спектра, но могут оказаться полезными при работе с большим объёмом моноязыковой информации.
- Кодировки UTF-8 и UTF-16 обладают переменной длиной кода. В UTF-8 каждый юникод-символ может быть закодирован одним, двумя, тремя или четырьмя байтами. В UTF-16 — двумя или четырьмя байтами.
- Внутренний формат хранения текстовой информации в рамках отдельного приложения может быть произвольным при условии корректной работы со всем пространством кодовых позиций Юникода и отсутствии потерь при трансграничной передаче данных.
Краткое замечание про кодирование
С термином кодирование может произойти некоторая путаница. В рамках Юникода кодирование происходит дважды. Первый раз кодируется набор символов Юникода (character set), в том смысле, что каждому юникод-символу ставится с соответствие кодовая позиция. В рамках этого процесса набор символов Юникода превращается в кодированный набор символов (coded character set). Второй раз последовательность юникод-символов преобразуется в строку байтов и этот процесс также называется кодирование.
В англоязычной терминологии существуют два разных глагола to code и to encode, но даже носители языка зачастую в них путаются. К тому же термин набор символов (character set или charset) используется в качестве синонима к термину кодированный набор символов (coded character set).
Всё это мы говорим к тому, что имеет смысл обращать внимание на контекст и различать ситуации, когда речь идёт о кодовой позиции абстрактного юникод-символа и когда речь идёт о его байтовом представлении.
При необходимости вы можете спрятать переписку с выбранным пользователем. Она исчезнет из списка диалогов и будет защищена от всех, кто имеет доступ к смартфону, кроме вас.
Если передумаете и захотите сделать спрятанный диалог обычным, откройте его и сделайте следующее. Нажмите на верхние три точки и выберите пункт «Информация» (Android). Или тапните по имени пользователя в самом верху, а затем — «Информация и настройки» (iOS). Затем нажмите «Сделать чат видимым».
3. Скрывайте свой статус «В сети»
Viber показывает другим пользователям, находитесь ли вы онлайн. Это может мешать, когда не хочется отвечать определённым контактам. К счастью, приложение разрешает скрывать свой текущий сетевой статус.
Если хотите стать невидимым, нажмите «Ещё» → «Настройки» → «Конфиденциальность» и отключите параметр «В сети». После этого посторонние не будут знать, когда вы используете Viber. Но вместе с тем и вы не сможете видеть, кто из других пользователей онлайн.
Изменять настройки сетевого статуса можно не чаще раза в сутки.
4. Прячьте фото от незнакомцев
Возможно, вы не хотите, чтобы фотография вашего профиля была доступна посторонним. В таком случае спрячьте её. Нажмите «Ещё» → «Настройки» → «Конфиденциальность» и отключите параметр «Отображать моё фото». После этого аватарку будут видеть только люди из списка ваших контактов.
5. Храните резервную копию переписок
При поломке, краже или смене смартфона вы можете потерять историю переписок. Чтобы этого не случилось, настройте автоматическое создание её копий.
Если у вас Android, убедитесь, что на устройстве установлено приложение облачного сервиса «Google Диск». Viber будет хранить в нём резервные копии. Если у вас iPhone, для резервного копирования понадобится сервис iCloud. Проверьте, правильно ли он настроен. Для этого откройте настройки телефона, нажмите на имя пользователя, выберите iCloud и убедитесь, что переключатели рядом с iCloud Drive и Viber активированы.
6. Используйте встроенный переводчик
Viber умеет переводить текст прямо в чате. Эта функция наверняка пригодится, если вы переписываетесь с иностранцами.
7. Создавайте собственные стикеры
Пользователи Viber могут с лёгкостью создавать уникальные стикеры прямо внутри приложения. Причём мессенджер позволяет размещать их в публичном каталоге, где ваше творчество будет доступно всем желающим.
Пока редактор наклеек добавили только в Android-версию Viber. Чтобы воспользоваться им, откройте любой чат, нажмите на значок стикеров, затем на плюс и выберите «Создать стикеры». Вы можете вставить любое изображение из галереи, вырезать из него нужный фрагмент, добавить текст и различные украшения.
8. Отправляйте фото в высоком качестве
По умолчанию Viber сжимает отправленные снимки до «хорошего» качества. Если хотите, чтобы изображения выглядели лучше, нажмите «Ещё» → «Настройки» → «Данные и мультимедиа» → «Качество фото» и выберите «Отличное».
9. Совершайте групповые звонки
Viber стал популярен во многом благодаря возможности совершать бесплатные интернет-звонки. Изначально мессенджер соединял только двух пользователей, но, начиная с прошлого года, вы можете общаться голосом с четырьмя собеседниками одновременно.
Чтобы организовать беседу с несколькими людьми, сначала откройте список чатов. Затем воспользуйтесь круглой кнопкой и выберите «Новая группа» (Android). Или просто нажмите на иконку в правом верхнем углу (iOS). Отметьте до четырёх собеседников и нажмите на фиолетовую галку или «Готово».
Чтобы позвонить выбранным людям, войдите в созданную группу и воспользуйтесь иконкой в виде трубки.
10. Отключите сохранение файлов в галерее
Viber может автоматически сохранять в галерею все присылаемые вам видео и снимки. В версии для Android эта функция активна по умолчанию. Отключите её, если не хотите, чтобы мессенджер забивал память устройства медиафайлами. Нажмите «Ещё» → «Настройки» → «Данные и мультимедиа» и снимите флажок с пункта «Сохранить в галерею».
В наше время почти все счастливые обладатели смартфонов пользуются разными мессенджерами. Одним из популярных является Viber. Лично у меня он есть уже достаточно долго и мне казалось, что я давно изучил все его возможности. Но не тут-то было!
Недавно один мой знакомый, как выяснилось, более продвинутый пользователь Viber, чем я, рассказал мне о тайных кнопках этой программы, позволяющих в разы улучшить работу с ней.
Секреты мессенджера
Как выяснилось, у Вайбер имеются свои секреты, о которых и пойдет речь в моей статье.
Оказывается, Вайбер имеет немало полезных для нас секретов Оказывается, Вайбер имеет немало полезных для нас секретовВ данном мессенджере можно:
- Засекретить информацию о времени собственного пребывания в сети. Это очень полезная функция, если вы от кого-то прячетесь.
Для ее активации следует в "Настройках" выбрать "Конфиденциальность" и отключить статус "В сети". Так вы станете "невидимкой". После этого можете смело ходить в Viber, и об этом никто не узнает.
Это очень хорошая функция, если вы, к примеру, хотите избавиться от надоедливого кавалера или пассии.
- Не захламлять память гаджета. Пересланные вам или вами фото или видео Вайбер хранит, как зеницу ока. Причем делает это по умолчанию. Так вот, чтобы сберечь бесценные гигабайты памяти, стоит обязательно выключить эту настройку.
Для этого, уже по привычке, проведите небольшую манипуляцию в "Настройках". Зайдите в "Мультимедиа" и отключите "Сохранить в галерее".
- Спрятать свою фотку, установленную в качестве аватарки, от незнакомых пользователей.
Для этого в настройках, в "Конфиденциальности" выберите "Фотография профиля" - "Никто". После этого чужаки, которых нет в ваших контактах, не смогут разглядывать вашу фотку.
- Запаролить Вайбер. Не хотите, чтобы кто-то посторонний прочел вашу переписку? Значит, эта функция вам обязательно нужна. Сам Вайбер не предлагает установку пароля, однако вы можете скачать суперполезную программку, которая поможет это сделать.
Если статья была вам полезной, то отблагодарите меня лайком, репостом или подпиской на мой канал. Помните что, тот, кто владеет информацией, владеет миром! Не забудьте поделиться в комментариях к статье, какими незнакомыми другим функциями разных мессенджеров пользуетесь вы.
Все говорят, мол, Viber не слишком современен и не слишком актуален, тем более когда вокруг столько инновационных продуктов, взять хотя бы Telegram или Signal. Даже WhatsApp, который, кстати, отключится через две недели, кажется более привычным и понятным, чем Viber. Так вот, отвечаем: вы не любите Viber просто потому, что плохо его знаете. А если вы его любите, тем более читайте наши подсказки по его комфортному использованию.
1. Двухстороннее верифицированное шифрование переписки
Функцией защиты переписки воспользоваться очень просто. В чате с собеседником включаете функцию "Верификация контакта", после этого вам придёт код, который нужно продиктовать вашему собеседнику (для этого после получения кода нужно созвониться с ним по Viber). Если коды, которые получили вы и ваш собеседник, совпадают — поздравляем, вся ваша переписка шифруется от начала и до конца.
2. Только ваши чаты
3. Встроенный редактор стикеров
Моду на стикеры в мессенджерах ввёл, конечно, Павел Дуров. В Telegram их бесчисленное множество. Остальные мессенджеры пытались конкурировать с Telegram, вводя в обиход собственные скучные стикерпаки. А Viber решил, что лучше, чем пользователи, с разработкой стикеров никто не справится. Тем более что они часто бывают уникальными и ориентированными на узкую аудиторию конкретного чата или канала. В общем, в Viber для Android есть внутренний редактор стикеров, с помощью которого вы можете создать личный стикерпак и использовать его на своё усмотрение, в том числе и сделать доступным для всех 800 млн пользователей Viber, выложив ваше произведение в публичный доступ.
4. Сохранение памяти и аккумулятора
Мессенджеры незаметно стали главными потребителями памяти и энергии смартфона. Можете проверить статистические данные на вашем iOS- или Android-смартфоне. Вы сильно удивитесь тому, какую часть энергии и свободной памяти занимает Telegram, Viber или WhatsApp.
В Viber можно отказаться от хранения всех снимков и видео, которые вы получаете или отправляете сами, в памяти смартфона. Переходите в настройки приложения, затем в подпункт "Данные и мультимедиа" и отключайте там флажок "Сохранить в галерею".
Теперь к энергии. У Viber есть возможность "удалённо" держать ваш Wi-Fi включённым, даже если вы выключили его в настройках смартфона. Так работает функция мессенджера "Всегда на связи". Отключите её в настройках — и прибавите около 10% времени работы смартфона.
5. Встроенный переводчик
Переписка с иностранцами сложна, если вы не полиглот и не знаете английский или любой другой язык в совершенстве или хотя бы на достойном уровне. Бывает, хвастаться нечем, но бывает.
Читайте также: