Исправляем проблемы с отображением русских букв в Windows 10
В процессе работы в Windows 10 может возникнуть ситуация, когда русские символы в системе перестают корректно отображаться. Вместо них мы видим нечто невразумительное, некие иероглифы или кракозябры, не обладающие каким-либо практическим смыслом. Обычно такое случается, когда неправильно выбрана локаль в региональных настройках.
Частенько это имеет место быть, когда вы работаете с русскоязычными символами в операционке с английской локализацией, поскольку в ней для русскоязычной программы по умолчанию отсутствуют средства обработки кириллицы, да и какого-либо другого языка с нелатинскими символами, будь это греческая, китайская либо японская языковая конструкция. В этой статье я расскажу, как убрать кракозябры в Windows 10, и вместо них работать с корректно отображающимися русскими символами.
Обычно кракозябры отображаются не везде. К примеру, кириллические символы в названиях программ на рабочем столе написаны абсолютно правильно, без ошибок, а вот если запустить на инсталляцию один из дистрибутивов с поддержкой русского языка, то тут же все начинает идти вкривь и вкось, текст становится нечитаемым, и вы буквально не знаете, что делать.
Ниже я расскажу, как избавиться от этой проблемы, решив ее в свою пользу раз и навсегда.
Стоит понимать, что вся проблема в том, что в вашей операционной системе изначально отсутствует поддержка кириллицы. Скорее всего, вы установили дистрибутив на английском языке, и поверх него установили расширенный пакет для русификации системы, но это не решает всех проблем. Текст все равно является нечитаемым, а описанная проблема остается и никуда не исчезает.
Первое, что может прийти в голову в данной ситуации — это переставить ОС с нуля на русскую версию, где изначально уже присутствует поддержка кириллических символов. Но предположим, что этот вариант для вас не годится, поскольку вы хотите работать именно в англоязычной среде, где все символы кириллицы отображаются корректно и без багов. Именно о такой ситуации и пойдет речь в моей инструкции, которая в этом случае и придется вам как никогда кстати.
Программы для очистки компьютера от мусора
Кодирование текстовой информации и компьютеры
Если смотреть на текст глазами компьютера, то в тексте нет предложений, абзацев, заголовков и т. д., потому что весь текст просто состоит из отдельных символов. Причем символами будут являться не только буквы, но и цифры, и любые другие специальные знаки (+, -,*,= и т. д.). Что самое интересное, даже пробелы, перенос строки и табуляция — для компьютера это тоже отдельные символы.
Для справки. Есть уникальный язык программирования, который в качестве своих операторов использует только пробелы, табуляции и переносы строки. Практического применения этот язык не имеет, но он есть.
Мы вводим текст в компьютер при помощи клавиатуры, символы которой мы прекрасно понимаем. Нажимая на какую-то букву, мы отправляем в оперативную память компьютера двоичное представление нажатых клавиш. Каждый отдельный символ будет представлен 8-битной кодировкой. Например буква «А» — это «11000000». Получается, что один символ — это 1 байт или 8 бит. При такой кодировке, путем нехитрых подсчетов можно посчитать, что мы можем зашифровать 256 символов. Для кодирования текстовой информации данного количества символов более чем предостаточно.
Кодирование текстовой информации в компьютерных устройствах сводится к тому, что каждому отдельному символу присваивается уникальное десятичное значение от 0 и до 255 или его эквивалент в двоичной форме от 00000000 и до 11111111. Люди могут различать символы по их внешнему виду, а компьютерное устройство только по их уникальному коду.
Рассмотрите, как происходит процесс. Мы нажимаем нужный нам символ на клавиатуре, ориентируясь на их внешний вид. В оперативную память компьютера он попадает в двоичном представлении, а когда компьютер его выводит нам на экран, то происходит процесс декодирования, чтобы мы увидели знакомый нам символ.
«Воевать до последнего украинца»: Запад заваливает Незалежную оружием
Вместе с тем мы каждый день слышим о том, что наши бывшие «западные партнёры» усердно поставляют в ВФУ всё новые и новые партии вооружения. Зенитные установки, противотанковое оружие, танки и так далее.
Можно, конечно, утешать себя тем, что сейчас Запад гонит туда всё то, что ему самому не нужно.
Как, в частности, это делает Словения: она передаст Незалежной свои старые танки М-84 (лицензионный вариант советских Т-72), а взамен получит от Германии более современную боевую технику.
И Польша тоже избавляется за счёт поставок Киеву тех же Т-72, четыре десятка лет простоявших на базе хранения в Люблине в ожидании модернизации, которой они так и не дождались.
Всё это так. И над этим можно сколько угодно потешаться – мол, на кой чёрт нужны древние «коробки», если доехать и до передовой они не смогут и сломаются по пути.
Но давайте не будем забывать, что помимо стран Варшавского договора, стремящихся и лицо не потерять перед западными кураторами («смотрите, и мы, и мы тоже помогаем Украине!»), и сбагрить ненужную технику, есть ещё и США, и Великобритания, и Германия, и Турция, и Франция.
Наибольшая накачка вооружением идёт, конечно, со стороны Штатов.
Как следует из информационного бюллетеня Госдепа на 21 апреля, из 4 млрд долларов, потраченных США с января прошлого года, непосредственно после начала спецоперации они вбросили в прожорливую топку ВФУ вооружения на 3,4 миллиарда!
Ниже – список того, что было поставлено на эти деньги.
Скриншот страницы сайта state.gov (с автоматическим переводом)
Удивляться суммам и объёмам не стоит. Американцы готовы воевать до последнего украинца. Буквально на днях стало известно, что только за прошлую неделю Соединённые Штаты выделили Украине вооружение на 800 млн долларов – восемнадцать 155-мм гаубиц, 40 тысяч артиллерийских снарядов, две сотни бронетранспортёров М113, одиннадцать вертолётов Ми-17 и сотню бронированных многоцелевых машин. В день – по четыре рейса. На подходе – очередные.
Активно старается и Великобритания, чьи инструкторы-спецназовцы долгие годы, начиная с 2014-го, натаскивали укробойцов. До начала СВО британцы отправили в Незалежную четыре тысячи единиц противотанкового оружия, включая NLAW и ракетные комплексы Javelin и высокоскоростные зенитные ракеты Starstreak. И премьер-министр Борис Джонсон заявил о планах поставить ещё шесть тысяч ракет. Правда, объёмы английских поставок в денежном выражении значительно меньше – порядка 200 млн долларов, отмечает издание Exrpess. Впрочем, другие страны тратят меньше: Италия – $160 млн, Швеция – $140 млн, Германия – $130 млн, Канада – $100 млн.
Место прибытия смертоносных грузов известно. Маршруты тоже. Почему молчим?
Известно, что в качестве перевалочного пункта используется польский город Жешув: это всего 70 км от границы и в полутора сотнях километров от Львова.
А потом – потом всё это «добро», начинённое смертью, отправляется к местам боевых действий. На линию фронта – в Донбасс, где сосредоточена основная группировка ВФУ.
Как?
Железной дорогой, друзья.
Как правило – эшелонами по рельсам. Реже – вертолётами. Своим ходом – тоже не часто: прежде всего, потому что слишком долго, да и передвижение колонн сложнее скрыть.
А вот поездами, замаскировав, обеспечив скрытность, по ночам – вполне можно.
Ну и укронацисты, разумеется, рады: можно стрелять, сбивать и подбивать цели, держаться.
Отсюда возникает ещё один неприятный, но очень резонный вопрос: а чего это, собственно, мы позволяем всем этим смертоносным «подаркам» от коллективного Запада убивать наших ребят?
Почему они попадают на фронт? Отчего мы не разрушили в первые же дни спецоперации все транспортные коммуникации на Украине?
Один эксперт, в прошлом офицер, участвовавший в боевых действиях в различных горячих точках, ещё в советские времена, в приватной беседе попытался мне объяснить:
В первые дни давали покинуть страну как можно большему числу беженцев, чтобы минимизировать потери среди населения. И, наверное, мы были уверены, что зарубежные страны не решатся так нагло накачивать Украину вооружением, – рассчитывали, вероятно, что побоятся. В смысле – не реакции России, а бесполезной траты денег, поскольку мы будем всё это уничтожать, не позволяя попадать в войска. А дальше.
И вот тут мой собеседник, откровенно говоря, сам запутался.
Поскольку дальше получается совсем нелогично. Ладно, выпустили беженцев, уехали из Незалежной основные потоки людей. Те, кто остался, вряд ли уже поедут. Скорее – наоборот, начнут возвращаться ранее отчалившие.
Да, здесь ясности никакой нет. И по крайней мере тактического смысла в сохранении дорожно-транспортной инфраструктуры тоже не вижу,
Мосты через реки, железнодорожные узлы, да и сами участки железной дороги, как представляется, следовало уничтожать давным-давно.
Кракозябры вместо русских букв — как исправить
Давайте теперь посмотрим, как появляются вместо текста кракозябры или, другими словами, как выбирается правильная кодировка для русского текста. Собственно, она задается в той программе, в которой вы создаете или редактируете этот самый текст, или же код с использованием текстовых фрагментов.
Для редактирования и создания текстовых файлов лично я использую очень хороший, на мой взгляд, Html и PHP редактор Notepad++. Впрочем, он может подсвечивать синтаксис еще доброй сотни языков программирования и разметки, а также имеет возможность расширения с помощью плагинов. Читайте подробный обзор этой замечательной программы по приведенной ссылке.
В верхнем меню Notepad++ есть пункт «Кодировки», где у вас будет возможность преобразовать уже имеющийся вариант в тот, который используется на вашем сайте по умолчанию:
В случае сайта на Joomla 1.5 и выше, а также в случае блога на WordPress следует во избежании появления кракозябров выбирать вариант UTF 8 без BOM. А что такое приставка BOM?
Дело в том, что когда разрабатывали кодировку ЮТФ-16, зачем-то решили прикрутить к ней такую вещь, как возможность записывать код символа, как в прямой последовательности (например, 0A15), так и в обратной (150A). А для того, чтобы программы понимали, в какой именно последовательности читать коды, и был придуман BOM (Byte Order Mark или, другими словами, сигнатура), которая выражалась в добавлении трех дополнительных байтов в самое начало документов.
В кодировке UTF-8 никаких BOM предусмотрено в консорциуме Юникод не было и поэтому добавление сигнатуры (этих самых пресловутых дополнительных трех байтов в начало документа) некоторым программам просто-напросто мешает читать код. Поэтому мы всегда при сохранении файлов в ЮТФ должны выбирать вариант без BOM (без сигнатуры). Таким образом, вы заранее обезопасите себя от вылезания кракозябров.
Что примечательно, некоторые программы в Windows не умеют этого делать (не умеют сохранять текст в ЮТФ-8 без BOM), например, все тот же пресловутый Блокнот Windows. Он сохраняет документ в UTF-8, но все равно добавляет в его начало сигнатуру (три дополнительных байта). Причем эти байты будут всегда одни и те же — читать код в прямой последовательности. Но на серверах из-за этой мелочи может возникнуть проблема — вылезут кракозябры.
Поэтому ни в коем случае не пользуйтесь обычным блокнотом Windows для редактирования документов вашего сайта, если не хотите появления кракозябров. Лучшим и наиболее простым вариантом я считаю уже упомянутый редактор Notepad++, который практически не имеет недостатков и состоит из одних лишь достоинств.
В Notepad ++ при выборе кодировки у вас будет возможность преобразовать текст в кодировку UCS-2, которая по своей сути очень близка к стандарту Юникод. Также в Нотепаде можно будет закодировать текст в ANSI, т.е. применительно к русскому языку это будет уже описанная нами чуть выше Windows 1251. Откуда берется эта информация?
Она прописана в реестре вашей операционной системы Windows — какую кодировку выбирать в случае ANSI, какую выбирать в случае OEM (для русского языка это будет CP866). Если вы установите на своем компьютере другой язык по умолчанию, то и эти кодировки будут заменены на аналогичные из разряда ANSI или OEM для того самого языка.
После того, как вы в Notepad++ сохраните документ в нужной вам кодировке или же откроете документ с сайта для редактирования, то в правом нижнем углу редактора сможете увидеть ее название:
Чтобы избежать кракозябров, кроме описанных выше действий, будет полезным прописать в его шапке исходного кода всех страниц сайта информацию об этой самой кодировке, чтобы на сервере или локальном хосте не возникло путаницы.
Вообще, во всех языках гипертекстовой разметки кроме Html используется специальное объявление xml, в котором указывается кодировка текста.
Прежде, чем начать разбирать код, браузер узнает, какая версия используется и как именно нужно интерпретировать коды символов этого языка. Но что примечательно, в случае, если вы сохраняете документ в принятом по умолчанию юникоде, то это объявление xml можно будет опустить (кодировка будет считаться UTF-8, если нет BOM или ЮТФ-16, если BOM есть).
В случае же документа языка Html для указания кодировки используется элемент Meta, который прописывается между открывающим и закрывающим тегом Head:
Эта запись довольно сильно отличается от принятой в стандарте в Html 4.01, но полностью соответствует новому внедряемому потихоньку стандарту Html 5, и она будет стопроцентно правильно понята любыми используемыми на текущий момент браузерами.
По идее, элемент Meta с указание кодировки Html документа лучше будет ставить как можно выше в шапке документа, чтобы на момент встречи в тексте первого знака не из базовой ANSI (которые правильно прочитаются всегда и в любой вариации) браузер уже должен иметь информацию о том, как интерпретировать коды этих символов.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Комментарии и отзывы (38)
Спасибо за интересную статью. Вот про БОМ не знал. В php от крокозябр всегда избавлялся командой: @mysql_query («SET NAMES ‘cp1251’»);
Да, и ноутпад++ поистине очень удобный инструмент.
Довольно интересная статья. Здорово, что описываете все так подробно, читая ваши материалы есть ощущение, что попадаешь на лекцию в университет.
Спасибо Вам большое.
Благодаря Вашей статье решила проблему с арабской кодировкой.
Статья — интересная, познавательная. Я попыталась вставить тизерную рекламу в сидебар, так вот тексты у тизеров появляются даже не кракозябрами, а какими-то квадратиками в которых 4 латинские буквы в два ряда по 2 шт в каждом.
В других частях блога таких проявлений замечено не было.
Как посоветуете изменить ситуацию. Кодировка файла sidebar после включения рекламного блока — правильная. Помогите, пожалуйста разобраться.
я получила сообщение по почте с приложением Сохранила в компьютере файл ТЕКСТ документа не читается Как раскодировать
Допустим, если символы закодированные с помощью CP866 попробовать отобразить, используя кодовую таблицу Windows 1251, то эти самые кракозябры (бессмысленный набор символов) и вылезут, полностью заменив собой текст сообщения.
А что значит закодированые??
спасибо большое, просто сказка:) книга писателям есть чему у тебя поучиться. Да действительно как я до сих пор без notepad++ обходился, правда есть такой инструмент на все случаи жизни slickedit: платная; но есть возможность пробную лицензию взять.
Простите, что не в тему немного, но всё-таки хотелось бы разобраться. Может это у меня с виндой косяк, но файлы, созданные с помощью Codelobster, в которых есть русский текст, даже просто txt, когда открываешь их браузером или редактором wordpad, вместо кириллицы отображаются не читаемые символы. В Notepad++ и в блокноте все текст нормально отображается, но в правом углу окна Notepad++ вижу надпись «ANSI as UTF-8», а в документах, содержащих только английский текст (независимо от расширения файла) — «ANSI»! В то время, как файл я сохраняю как UTF-8, оно же стоит по умолчанию и радиокнопку «windows» нажимаю. В чём может быть проблема?
у меня возникла такая проблема, когда я открываю в интернете документы допустим «Региональные экзамены и тд» то у меня появляется табличка «Параметры фильтра ASCII» и там нужно указать кодировку, стандартный шрифт, язык и разрыв текста((и когда я указываю, как я думаю, то у меня открывается документ со всякой кракозяброй( Помогите плииз.
Создал блог, все «сохранял в утф-8 без бом».
Залил скрипт find_bom.php, проверил — все чисто, бома нет.
Вроде все нормально, но в одном браузере (мозила) — крякозябры.
Уже и в БД зашел, поменял 1251 на утф, без изменений.
Нет сейчас возможности проверить, как вокруг воспринимается.
Что надо еще сделать?
здравствуйте все здесь есть понимающие html коды, юникод, помогите новичку пожалуйста одним вопросом замучился а то, есть один сайт туда я должен писать и отправлять греческие символы, но этот сайт вместо того чтобы отобразить символ показывает его html код, вероятно сайт нормально показывает только русские и английские буквы. Скажите есть ли варианты закодировать символы эти, чтобы их читал сайт, он по моему на UTF-8. буду очень благодарен!
Статья очень познавательная. Жаль только что проблемы она не решает.
Я делаю форму в html. action:mailto. Но при загрузке обработчика вылезают кракозябры. Я перепробовал все кодировки и атрибуты. пробовал сделать форму отдельно от файла. Не помогает ничего. Подскажите, пожалуйста, что делать!?
Здравствуйте Дмитрий, пожалуйста помогите разобраться с проблемой. Возможно это связано с кодировкой. У меня комментарии на русском, на блоге, выводятся кубиками и знаками вопросов. Английский же нормально публикуется. В чем может быть проблема? Нигде не могу найти ответ.
0_о@. +w:(”#@=’,.;;. помогите пожалуйста это прочитать, очень надо , с помощью чего написано не знаю!
У меня на сайте появилась проблема. На главной при выводе части поста в конце появляется вопросительный знак в черном ромбе. Нигде больше проблем с кодировками больше нет.
Появилось где-то месяц назад. Плагинов никаких не ставил. Прошу помочь.
Разобрался, а то не мог понять в чём ошибка.
Благодарю создателя сайта, и автора статьи)
Спасибо за статью! Продолжайте в том же духе!
У меня вопрос насчет BOM. Когда я сохраняю без БУМ, получается я сохраняю на utf 8? А когда с БУМ то utf 16? Без БУМ у меня выходит крякозябры. Хотелось бы больше узнать про этот бум. Если файл сохранить с бум ничего фатального в этом нет? С ним объем кодировки увеличивается или что? Что с ним не так? Почему надо без него сохранять?
Спасибо за статью. Наверное как и многие попал сюда чтоб разобраться — что за зверь эта — utf8 и с чем её едят. Думаю, что разобрался. Мне кажется наглядно было бы привести пример: в Нотепаде написать слово «1234андр» и сохранить в Анси файле и в ЮТФ8 файле. Первый файл будет весить 8 байт, второй 15. Потом второй файл открыть Нотепадом++ и перекодировать в ЮТФ8 без БОМ. После сохранения он будет весить 12 байт. Вот тут-то, опираясь на статью, всё в голове и стает на свои места. Еще раз спасибо.
Наконец нашла статью объясняющую по какому поводу мучения с непонятными абдакадабрами. Спасибо автору — в голове более менее появился порядок. Все проблемы были в использовании частом блокнота.
Статья полезная для общего развития, но практически преобразовать следующую строку
во что-то удобочитаемое я так и не смог (это название темы Е-письма, пришедшего от loopy.ru, текст письма нормальный). Пользоавлся и Word, и TextViewer, и Hieroglyph и еще 5-6 «крутыми» текстовыми редакторами — везде преобразуется во всё, что угодно, но только не в то, что можно прочитать.
Спасибо! Отличная статья. Очень доступно. Только в СР866 9C соответствует не ‘М’, а ‘Ь’. Если я не ошибаюсь.
звучит как «ваши правки одобрены (ерика)».
Преобразовано из 20866 (русская — КОИ8) в 65001 (UTF-8)
с помощью AkelPad 4.8.4.
Имхо, произошло ЭТО из-за того,
что почтовик отправителя настроен на КОИ8 (текст),
а Ваш (Mashinist) почтовик настроен на UTF-8 (html).
Поэтому ТЕЛО письма читалось хорошо,
а ТЕМА письма это только текст в соответствующей кодировке.
У меня с Codelobster тот же косяк что и у Степана.
Все настройки перепробовал, всё равно просто utf-8 и ни каким «без BOM» и не пахнет.
Нажимаешь файл->изменить кодировку — меняет, закрываешь-открываешь нету «BOM» он его опять сам как то по своему перекодирует.
Вот зараза. Пришлось такие файлы только в notepad++ редактировать.
1. Чтобы новый файл создавался в кодировке утф 8 (это мы увидим в notepad++) в настройках по умолчанию выбираем не With BOM — а просто UTF-8 .
2. Возможно, помогло ещё в настройках->форматирование выбрать Drupal (я с ним работаю)
Теперь при создании и редактирования файла кодировка сохраняется — «ANSI as UTF-8», но показывается просто как утф-8. Только изменить любую другую кодировку на «ANSI as UTF-8» в Codelobstere по прежнему не работает, это можно сделать например в notepad++.
Метод научного тыка рулит!
скажите , есть ли плагин создающий на блоге такое как конвертор ASCII, например создал страницу , пользователь на нее зашел , в одно окно вбил текст на русском , а в другом получил цифровое значение этого текста . спасибо
использую WinSyntax 2.0 как и нотпад подсвечивает код,
в XPюше стандартный блокнот на SP2 поддерживает сохранение в UTF-8 без BOM, почему-то в новых таковую функцию убрали.
zee, вот тебе http://2cyr.com/decode/?lang=ru, делай парсер
А у меня в реестре винды есть строка в Юникоде. Удалить невозможно. Это из-за того, что нечитаемо? Служба BonanzaDealsLive (bonanzadealslive)
Спасибо, буду бороться со своей бедой
Спасибо большое, решила проблему с выводом русских букв в меню на сайте на WordPress
Спасибо, решен вопрос с кодировкой формы обратной связи.
Давно уже пора признать что это доселе неизвестный вирус! Как вы объясните кракозябры в отдельных файлах word и блокноте windows ? После замены файлов с кракозябрами на нормальные, с архивного диска, на следующий день они опять стали с кракозябрами. Вирус пометил почему то именно эти файлы.
Спасибо за Ваш труд. Все ясно и легко изложено. Долгое время не мог решить свою проблему отображения текста в письмах, но благодаря Вашей статье — все решил, а более того приобрёл опыт. Занес Вас в закладки! Спасибо!
Ребята, а какая версия Юникода в виндоусе стоит? ведь Unicode постоянно развивается, сейчас уже 9 версию. У меня например стоит windows 8.1 и он ни разу не принимал обновления. Какая в нем версию Юникод ?
А как же иНЖАЛИД ДЕЖИЦЕ?
Видать не всегда АСКИ
Ребята, кто-то помогите раскодировать текст с «Кириллица (DOS/OS2-866/русский)» или с —
Кириллица (Apple Macintosh)
Ничего не помогает, у меня при незначительном сбое в системе, пропало 45 страниц текста нового романа, что я пишу, превратившись в бесконечный повтор одного символа (как чаще всего) — #######################################. и так на все сорок пять страниц текста.
Я работал в текстовом редакторе OpenOffice.org 4.1.3 (последняя версия) и перепробовал все вышеуказанные кодировки, бесполезно. оригинальный текст был на шрифте Constansia (русский)
Пробовал через сайт OpenOffice просить помощь, там все на энглиш и на десятке языков кроме русского (видать санкции или хрен знает что) пробовал писать через е-мейл — ответ на английском — гугловские переводчики переводят на русский — плакать хочется.
Очень классная статья
Предлагаю чуть улучшить и заодно прояснить для меня один момент.
В разделе «ASCII — базовая кодировка текста для латиницы», где мы получили число 233, дальше перевели его в шестнадцатеричное, получив E9.
Как его использовать в таблицах различных кодировок? Первый символ «Е» смотреть по вертикали или по горизонтали?
Примеры с различными кодировками (какие символы соответствуют Е9), как по мне, были бы нелишними.