Почему в html текст на русском заменяется странными символами
Перейти к содержимому

Почему в html текст на русском заменяется странными символами

  • автор:

Если символы отображаются неправильно в TextEdit на Mac

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

Выбор другой кодировки для одного документа

  1. В приложении TextEdit на Mac выберите меню «Файл» > «Открыть», затем выберите файл (не открывайте его).
  2. Нажмите «Параметры» в левом нижнем углу окна.
  3. Нажмите всплывающее меню «Кодировка простого текста» и выберите кодировку. Если в списке нет нужной кодировки, выберите «Настройка списка кодировок», затем выберите кодировки, которые нужно включить в список.
  4. Нажмите «Открыть».

Выбор другой кодировки для всех документов

  1. В приложении TextEdit на Mac выберите «TextEdit» > «Настройки», затем нажмите «Открытие и сохранение».
  2. Нажмите всплывающее меню «Открытие файлов» (в разделе «Кодировка простого текста») и выберите кодировку.

См. такжеНастройка межсимвольных и межстрочных интервалов в документе TextEdit на Mac

Почему вместо русского текста выводятся ромбики?

Иногда при отображении в браузере веб-страницы вместо текста можно наблюдать ромбики или другие символы. Но совсем не тот текст, который мы ожидаем (рис. 1).

Нечитаемый текст в браузере

Рис. 1. Нечитаемый текст в браузере

Такое происходит при сохранении файла в неверной кодировке, например, в ANSI. Недостаточно добавить в код, нужно чтобы и сам HTML-файл был сохранён в кодировке UTF-8. Для этого следует использовать редакторы, которые поддерживают разные кодировки и могут преобразовать текст из одной кодировки в другую. К примеру, в популярном редакторе Notepad++ под Windows для нужной кодировки следует выбрать меню Кодировки > Преобразовать в UTF-8 (рис. 2).

Преобразование кодировки в Notepad++

Рис. 2. Преобразование кодировки в Notepad++

После сохранения файла текст в браузере будет отображаться корректно.

См. также

Выбор кодировки текста при открытии и сохранении файлов

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

Когда вы открываете текстовый файл в Microsoft Word или другой программе (например, на компьютере, язык операционной системы на котором отличается от того, на котором написан текст в файле), кодировка помогает программе определить, в каком виде нужно вывести текст на экран, чтобы его можно было прочитать.

В этой статье

  • Общие сведения о кодировке текста
  • Выбор кодировки при открытии файла
  • Выбор кодировки при сохранении файла
  • Поиск кодировок, доступных в Word

Общие сведения о кодировке текста

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

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

Различные кодировки для разных алфавитов

Сведения о кодировке, сохраняемые с текстовым файлом, используются компьютером для вывода текста на экран. Например, в кодировке «Кириллица (Windows)» знаку «Й» соответствует числовое значение 201. Когда вы открываете файл, содержащий этот знак, на компьютере, на котором используется кодировка «Кириллица (Windows)», компьютер считывает число 201 и выводит на экран знак «Й».

Однако если тот же файл открыть на компьютере, на котором по умолчанию используется другая кодировка, на экран будет выведен знак, соответствующий числу 201 в этой кодировке. Например, если на компьютере используется кодировка «Западноевропейская (Windows)», знак «Й» из исходного текстового файла на основе кириллицы будет отображен как «É», поскольку именно этому знаку соответствует число 201 в данной кодировке.

Юникод: единая кодировка для разных алфавитов

Чтобы избежать проблем с кодированием и декодированием текстовых файлов, можно сохранять их в Юникоде. В состав этой кодировки входит большинство знаков из всех языков, которые обычно используются на современных компьютерах.

Так как Word работает на базе Юникода, все файлы в нем автоматически сохраняются в этой кодировке. Файлы в Юникоде можно открывать на любом компьютере с операционной системой на английском языке независимо от языка текста. Кроме того, на таком компьютере можно сохранять в Юникоде файлы, содержащие знаки, которых нет в западноевропейских алфавитах (например, греческие, кириллические, арабские или японские).

Выбор кодировки при открытии файла

Если в открытом файле текст искажен или выводится в виде вопросительных знаков либо квадратиков, возможно, Word неправильно определил кодировку. Вы можете указать кодировку, которую следует использовать для отображения (декодирования) текста.

  1. Откройте вкладку Файл.
  2. Нажмите кнопку Параметры.
  3. Нажмите кнопку Дополнительно.
  4. Перейдите к разделу Общие и установите флажокПодтверждать преобразование формата файла при открытии.

Примечание: Если установлен этот флажок, Word отображает диалоговое окно Преобразование файла при каждом открытии файла в формате, отличном от формата Word (то есть файла, который не имеет расширения DOC, DOT, DOCX, DOCM, DOTX или DOTM). Если вы часто работаете с такими файлами, но вам обычно не требуется выбирать кодировку, не забудьте отключить этот параметр, чтобы это диалоговое окно не выводилось.

Если почти весь текст выглядит одинаково (например, в виде квадратов или точек), возможно, на компьютере не установлен нужный шрифт. В таком случае можно установить дополнительные шрифты.

Чтобы установить дополнительные шрифты, сделайте следующее:

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.
  2. Выполните одно из указанных ниже действий. В Windows 7
    1. На панели управления выберите раздел Удаление программы.
    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    В Windows Vista

    1. На панели управления выберите раздел Удаление программы.
    2. В списке программ щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    В Windows XP

    1. На панели управления щелкните элемент Установка и удаление программ.
    2. В списке Установленные программы щелкните Microsoft Office или Microsoft Word, если он был установлен отдельно от пакета Microsoft Office, и нажмите кнопку Изменить.

    Совет: При открытии текстового файла в той или иной кодировке в Word используются шрифты, определенные в диалоговом окне Параметры веб-документа. (Чтобы вызвать диалоговое окно Параметры веб-документа, нажмите кнопку Microsoft Office, затем щелкните Параметры Word и выберите категорию Дополнительно. В разделе Общие нажмите кнопку Параметры веб-документа.) С помощью параметров на вкладке Шрифты диалогового окна Параметры веб-документа можно настроить шрифт для каждой кодировки.

    Выбор кодировки при сохранении файла

    Если не выбрать кодировку при сохранении файла, будет использоваться Юникод. Как правило, рекомендуется применять Юникод, так как он поддерживает большинство символов большинства языков.

    Если документ планируется открывать в программе, которая не поддерживает Юникод, вы можете выбрать нужную кодировку. Например, в операционной системе на английском языке можно создать документ на китайском (традиционное письмо) с использованием Юникода. Однако если такой документ будет открываться в программе, которая поддерживает китайский язык, но не поддерживает Юникод, файл можно сохранить в кодировке «Китайская традиционная (Big5)». В результате текст будет отображаться правильно при открытии документа в программе, поддерживающей китайский язык (традиционное письмо).

    Примечание: Так как Юникод — это наиболее полный стандарт, при сохранении текста в других кодировках некоторые знаки могут не отображаться. Предположим, например, что документ в Юникоде содержит текст на иврите и языке с кириллицей. Если сохранить файл в кодировке «Кириллица (Windows)», текст на иврите не отобразится, а если сохранить его в кодировке «Иврит (Windows)», то не будет отображаться кириллический текст.

    Если выбрать стандарт кодировки, который не поддерживает некоторые символы в файле, Word пометит их красным. Вы можете просмотреть текст в выбранной кодировке перед сохранением файла.

    При сохранении файла в виде кодированного текста из него удаляется текст, для которого выбран шрифт Symbol, а также коды полей.

    Выбор кодировки

    1. Откройте вкладку Файл.
    2. Выберите пункт Сохранить как. Чтобы сохранить файл в другой папке, найдите и откройте ее.
    3. В поле Имя файла введите имя нового файла.
    4. В поле Тип файла выберите Обычный текст.
    5. Нажмите кнопку Сохранить.
    6. Если появится диалоговое окно Microsoft Office Word — проверка совместимости, нажмите кнопку Продолжить.
    7. В диалоговом окне Преобразование файла выберите подходящую кодировку.
    8. Чтобы использовать стандартную кодировку, выберите параметр Windows (по умолчанию).
    9. Чтобы использовать кодировку MS-DOS, выберите параметр MS-DOS.
    10. Чтобы задать другую кодировку, установите переключатель Другая и выберите нужный пункт в списке. В области Образец можно просмотреть текст и проверить, правильно ли он отображается в выбранной кодировке.

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

    Поиск кодировок, доступных в Word

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

    Ниже приведен список письменностей и связанных с ними кодировок (кодовых страниц).

    Система письменности

    Используемый шрифт

    Юникод (UCS-2 с прямым и обратным порядком байтов, UTF-8, UTF-7)

    Стандартный шрифт для стиля «Обычный» локализованной версии Word

    Windows 1256, ASMO 708

    Китайская (упрощенное письмо)

    GB2312, GBK, EUC-CN, ISO-2022-CN, HZ

    Китайская (традиционное письмо)

    BIG5, EUC-TW, ISO-2022-TW

    Windows 1251, KOI8-R, KOI8-RU, ISO8859-5, DOS 866

    Английская, западноевропейская и другие, основанные на латинице

    Windows 1250, 1252-1254, 1257, ISO8859-x

    Notepad++. Кириллические символы, ошибочно попавшие в код — решение проблемы

    Вчера потратил почти два часа на то, чтобы найти ошибку во вроде бы правильном коде. Проблема оказалась банальной — в ключ массива «text» каким-то образом попала кириллическая буква «е». По виду она не отличается от «e» латинской, и найти проблему оказалось очень нелегко. Уверен, большинство программистов, да и просто людей, которые работают с текстовой информацией, время от времени сталкиваются с подобными неприятностями. Особенно это касается английской буквы «си» и русской «эс», которые находятся на одной и той же клавише в русской и английской раскладках. У меня этот случай далеко не первый, и поэтому я решил заняться поиском решения данной проблемы вплотную. И решение — пусть не очень элегантное, но вполне работоспособное — нашлось.

    Исторически сложилось так, что я часто использую Notepad++ для работы вообще, и для написания скриптов на PHP в частности. И в нем, к примеру, имена переменных $iicuxiphametod и $іiсuхiрhаmеtоd (не обращайте внимания на странные названия — это просто пример) выглядят совершенно одинаковыми, хотя в слове справа половина символов кириллические.

    image

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

    image

    image

    Для простоты я не стал выбирать в символьные классы только те кириллические символы, которые похожи на латинские, а включил их все (русский и украинский алфавиты, за исключением некоторых украинских букв) — просто хотел показать сам принцип.

    Как вариант такое решение можно рассматривать, но тогда каждый файл придется проверять каждый раз, когда код работает не так. А это не удобно.

    Второй моей мыслью было: «А возможно ли задать для кириллицы отдельный шрифт или шрифт отдельного размера, чтобы кириллица и латиница отличались по виду уже при вводе, ошибочно введенные символы бросались бы в глаза, и их можно было бы исправить сразу, а не потом?» В Notepad++ такой опции не оказалось. Можно задать отдельные шрифты, размеры, цвет для разных языков программирования, для разных типов данных — переменных, строк, зарезервированных слов и т.д., но не для кириллицы.

    Тогда я подумал, что, возможно, есть плагин, позволяющий это осуществить. Но поиски такого дополнения тоже успеха не принесли.

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

    Вот так, например, приведенные выше имена выглядят, если для имен переменных установить шрифт SimSun-ExtB (Опции->Определение стилей->Стиль шрифта):

    image

    image

    image

    Если пойти еще дальше, то для строковых данных можно задать шрифт, в котором кириллические символы отличаются от латинских, например, SimSun-ExtB, а для некоторых других, например, для переменных, где кириллица в обычных условиях не нужна — шрифт, в котором нет кириллицы, к примеру, шрифт Miriam Fixed. Вместо русских букв в таких шрифтах отображаются другие символы и сразу бросаются в глаза.

    image

    Сравните одни и те же имена в шрифте Courier New:

    image

    и в шрифте Miriam Fixed:

    image

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

    Это решение работает для Notepad++, но я думаю, то же самое можно сделать и в некоторых других редакторах и IDE.

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

    • notepad++
    • кириллица
    • кириллические символы
    • ошибки
    • ошибки в коде

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *