Кодировка windows или koi

Кодировки UTF-8 и Windows 1251 — просто о сложном

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

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

Кодировка windows-1251 – что это такое, какое значение она имеет при создании сайта, какие символы будут доступны и является ли она лучшим решением на сегодняшний день? Обо всем этом в сегодняшней статье. Как всегда, простым языком, максимально понятно и с минимальным количеством терминов.

Немного теории

Любой документ на компьютере или в интернете, как я уже сказал, хранится в виде двоичного кода. К примеру, если вы используете кодировку ASCII, то буква «К» будет записана как 10001010, а windows 1251 под этим числом скрывается символ – Љ. В итоге, если браузер или программа обратится к другой таблице и считает вместо ASCII коды windows 1251, то читатель увидит совершенно непонятные ему символ.

Логичен вопрос, нафига было придумывать множество таблиц с кодами? Дело в том, что помимо русского алфавита существует еще и английский, немецкий, китайский. По некоторым подсчетам, существует около 200 000 символов. Хотя, я не очень доверяю этой статистике, вспоминая про японский.

Не забывайте, что для заглавной и строчной буквы нужно придумать свой код, есть запятые, тире и так далее.

Чем больше в таблице символов, тем длиннее код каждого из них, а значит и вес документа становится больше.

Представьте, если бы одна книга весила 4 Гб! Она бы очень долго загружалась, занимала все свободное место на компьютере. Решение о скачивании представлялось бы делом нелегким.

Если вспомнить о сайтах, то вообще страшно подумать, что бы произошло. Каждая страничка открывалась даже на скоростном оптоволокне по часу с лишним! Думаю, мобильные телефоны можно было бы смело выкидывать. Пользоваться ими на улице даже с 4G? Сомневаюсь.

По этим причинам каждый программист в свое время старался придумать свою таблицу символов. Чтобы было удобно для использования и вес сохранялся оптимальным.

Microsoft, к примеру, для русскоязычного сегмента создали windows-1251. В ней, конечно же, есть свои достоинства и недостатки. Как и у любого другого продукта.

Сейчас уже, лишь 2% всех страниц в интернете написано на 1251. Большинство веб-мастеров используют UTF-8. Почему так?

Недостатки и достоинства

UTF-8, в отличие от windows-1251 универсальная кодировка, в ней содержатся буквы различных алфавитов. Существует даже UTF-128, где есть вообще все языки – теулу, суахили, лаосский, мальтийский и так далее.

UTF-8 победнее, буквы занимают в разы меньше места и занимают всего один байт памяти, как и в 1251. В УТФ есть редкие символы из других языков или специальные символы. Они-то и весят по 5-6 байтов, но в документе используются крайне редко.

Читайте также:  Install wine linux ubuntu

Эта кодировка более продумана, а потому ее использует большинство приложений по умолчанию. То есть, если вы не указываете программе, какую кодировку вы используете, то первым делом он проверит именно UTF-8 .

Когда вы создаете html документ для сайта, то указываете браузерам на какую таблицу им обращать внимание при расшифровке записей.

Для этого необходимо вставить в тег head следующие данные. После символов «charset=» идет либо утф, либо виндовс, как в примере ниже.

Если в дальнейшем вы захотите что-то поменять и вставить фразу на албанском, используя эту таблицу расшифровок, то ничего не получится, ведь этого языка кодировка не поддерживает. UTF‑8 без проблем позволит вам это сделать.

Если вас заинтересовало правильное создание сайта, то я могу порекомендовать вам курс Михаила Русакова « Создание и Раскрутка сайта от А до Я ».

Он содержит в себе очень много – 256 уроков, затрагивающих HTML, CSS, JavaScript, PHP, MySQL и XML. Помимо языков программирования вы сможете понять как монетизировать сайт, то есть скорее и больше получать прибыль. Один из немногих курсов, в котором было бы так подробно разъяснено все, что нужно.

Сам я вот уже год обучаюсь в школе блоггеров Александра Борисова . Это занимает в разы больше времени, конца и края пока не видно, но зато не менее исчерпывающе и дисциплинирует. Мотивирует продолжать разработку.

Ну а если возникают вопросы, не нужно искать по интернету. Всегда есть грамотный наставник.

Что-то я отошел от темы. Давайте вернемся к кодировкам.

Базы банных

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

Сложности случаются у всех, не важно какой у вас опыт работы, стаж и выслуга лет. Некоторые странички в базе могут содержать в себе все доступные символы для виндовс-1251, другие, к примеру, в шаблонах страниц, в другой кодировке.

Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.

Чтобы расшифровка согласовалась необходимо вписать код mysql_query(«SET NAMES cp1251»). В этом случае преобразование будет осуществлять по другому протоколу – cp1251.

Htaccess

Если на сайте вы настойчиво решили использовать именно 1251, то вам следует найти или создать файл htaccess. Он отвечает за настройки конфигурации. В него придется добавить еще три строчки, чтобы все сошлось.

DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset «cp1251»

Я все же настоятельно рекомендую вам задумать о использовании UTF-8. Он более популярен, прост и богат. Какие бы решения вы не приняли сейчас, важно, чтобы впоследствии можно было все исправить. Добавить англоязычную версию сайта на этой кодировке будет в разы проще. Ничего не нужно исправлять.

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

Читайте также:  Виды браузеров для windows

До новых встреч и удачи в ваших начинаниях.

Кодировка windows или koi

Вопрос

Добрый день, коллеги!

Настроена групповая политика для Outlook, которая выставляет кодировку исходящих сообщений в UTF-8.

При создании нового сообщения из Outlook кодировка сообщения действительно в UTF-8.

При отправке файла по эл.почте через проводник Windows (правая кнопка-отправить-Адресат) или из любой открытой программы Word,Excel и д.р (файл-отправить по эл.почте), письмо формируется в Outlook в кодировке KOI 8- R .

Получается, что при таком способе отправки сообщения групповая политика игнорируется!

Это пораждает проблемы, описываемые в этом топике: Непобедимая кодировка в Outlook

Workaround показал,

На это поведение влияет локализация Windows для Non — Unicode программ. Для русской Windows установлен язык «Русский (Россия)». Видимо этому языку соответствует кодировка KOI 8- R .

Вопрос, как заставить сообщение формироваться в utf-8 по умолчанию, без ручного вмешательства.

Все ответы

Добавьте, у вас Outlook настроен так:

Ждём от вас дополнений.

Да, я Жук, три пары лапок и фасеточные глаза :))

Настроена групповая политика для Outlook, которая выставляет кодировку исходящих сообщений в UTF-8.

Дополните, в отправляемом Сообщении из контекстного меню, какая у вас устанавливается кодировка, так как у меня например, при установке в Outlook кодировки UTF8:

Служба MAPIMail, в исходящем Сообщении берёт автоматом кодировку из Outlook:

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 12 марта 2018 г. 22:24

Параметр «Автовыбор кодировки исходящих сообщений» отключен политикой.

Да, я Жук, три пары лапок и фасеточные глаза :))

Update:

Проблема проявляется в режиме онлайн подключения к Exchange.

В режиме кэширования сообщение формируется в UTF-8 как выставлено в настройках Outlook.

Update:

Появились варианты кодировок:

если название файла содержит знаки №!% то кодировка Кириллица(iso) она же 8859-5 если посмотреть в заголовках сообщения)

если название файла содержит русские кавычки-ёлочки «» то кодировка Кириллица(Windows) она же windows-1251 если посмотреть в заголовках сообщения)

Проверить кодировку сообщения можно у получателя — другие действия — кодировка, либо в заголовках сообщения:

При получении Сообщения от Отправителя в кодировке UTF8, у Получателя:

видимо всё же нужно обратить пристальное внимание на Групповые настройки и настройки вашего почтового сервера.

Да, я Жук, три пары лапок и фасеточные глаза :))

Решим работы Вашего outlook можете показать на скриншоте?

Проблема проявляется в режиме онлайн подключения.

Не совсем понял, о каком режиме вы спрашиваете, у меня как у Получателя сообщений по протоколу РОР3, в настройках Outlook установлена кодировка KOI8-R:

с включённой пятиминутной автоматической загрузкой Сообщений из всех моих почтовых эл.ящиков.

Также, из ваших сообщений, не понятна ваша озабоченность кодировкой, допускаю, что ваши Получатели сообщений, возможно получают абракодабру или в Теме сообщения как в случае с «Первым ОФД»:

или в самом Сообщении, как у Сбербанка:

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 15 марта 2018 г. 15:26

Жук, всё ясно, что не совсем поняли. тогда не ясно откуда у Вас MVP и зачем Вы отвечаете так часто, не имея видимо понятия об работе Exchange + Outlook и кодировках.

Не одно дельного совета. кроме проверить политики и «настройки» сервера. Может еще всё выключить и включить или обновить до последних версий? Еще советы? =) Мне не нужны Ваши скриншоты с тем, что у Вас всё работает.

Читайте также:  Боковая панель для linux

Режим кэширования Outlook (который выставлен по умолчанию в Outlook 2007+) описан тут:

Как вы оформили задаваемый вам вопрос, такие ответы вы и получаете.

P.S. Передо мной не стоит задача, давать готовые решения для спрашивающих, на блюдечке с голубой каёмочкой.

Да, я Жук, три пары лапок и фасеточные глаза :))

  • Изменено Жук MVP, Moderator 15 марта 2018 г. 18:09

Проблема проявляется в режиме онлайн подключения к Exchange.

В режиме кэширования сообщение формируется в UTF-8 как выставлено в настройках Outlook.

А что если не использовать режим онлайн вообще?

Exchange and Outlook utilities at
http://www.ivasoft.com

Режим кеширования пораждает проблемы с не оперативным обновлением данных в глобальной адресной книге и размер ящиков более 20Гб становится проблемой у пользователя.

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

Всем в организации выставить режим кэширования невозможно, особенно ПК используемые несколькими пользователями посменно и имеющие делегирования к другим почтовым ящикам и календарям.

Проблемы использования режима кэширования Outlook озвучены тут: Выбор между режимом кэширования Exchange и сетевым режимом

1. У Отправителя сообщения из контекстного меню Отправить\Адресат, формат сообщения формируется «Почтовой службой (.MAPIMail)», а отправляется сформированное сообщение, через Outlook .

2. Exchange для Outlook, может работать только в двух режимах:

-в режиме кеширования;

-интерактивном для Outlook 2010, или сетевом для более новых версий.

3. При проблемах с кодировкой, в первую очередь необходимо обратиться к серии статей TechNet Параметры кодирования сообщений.

В вашем основном вопросе нет ответов и приведённых вами скриншотов, конкретных повреждений текста у Получателя сообщений, также непонятно что повреждается в сообщении, тема или сам текст.

Правильно сформированный вопрос, на 90% содержит и решение этого вопроса, 10% отдаётся на совокупность факторов приводящих к подобной ошибке.

Да, я Жук, три пары лапок и фасеточные глаза :))

Суть вопроса, почему письмо отправляется не в utf-8, а в koi-8r при отправке из контекстного меню проводника windows, при работе Outlook в интерактивном режиме.

Проблемы уже начинаются когда получатель такого сообщения в koi-8r нажимает кнопоку ответить или переслать, вкладывает файл с названием на русском языке.

Получатель такого ответа видит ‘кракозябры’. Повторюсь это уже следствие проблемы, описанной тут: Непобедимая кодировка в Outlook по которой решения так и нету, кроме как выставить кодировку исходящих сообщений в uft-8, что у меня и сделано политикой. Так доходчиво?

Не совсем, правильнее так если я правильно интерпретирую то, что вы написали:

Получатели сообщений от вашего Отправителя с настроенной групповой политикой для Outlook кодировкой UTF-8, при его ответе или пересылке полученного сообщения (заполните, в какой кодировке получено сообщение), получают сообщение с крякозябрами и в кодировке KOI8-R (заполните где, в теме или в самом тексте сообщений, скриншоты обоих ошибок смотри на моих скриншотах предыдущего сообщения).

Далее, в зависимости от того, кто у вас Получатель Отправителя, возможны варианты:
-Получатель ваш, с вашими настройками групповой политикой кодировки для Outlook.
-Получатель сторонний, со своими настройками кодировки Outlook.

Это также необходимо отражать в своём вопросе.

Да, я Жук, три пары лапок и фасеточные глаза :))

Оцените статью