Перейти к содержимому

Как изменить кодировку страницы в opera

  • автор:

Как поменять кодировку в опере 60?

В Firefox нажимаем клавишу Alt, и появляется горизонтальное меню. В горизонтальном меню выбираем «Вид» -> «Кодировка текста» и дальше выбираем нужную кодировку.

Как изменить кодировку страницы в Internet Explorer?

Для того чтобы изменить кодировку страницы выполним следующие действия. В браузере Internet Explorer на панели меню зайдем во вкладку «Вид». Выберем пункт «Кодировка» и выберем пункт «Дополнительно». В открывшемся ниспадающем списке выберем нужную кодировку страницы.

Как перевести иероглифы в нормальный текст?

нажать левый ALT — чтобы сверху показалось меню. Нажать меню «Вид»; выбрать пункт «Кодировка текста«, далее выбрать Юникод. И, ву-а-ля — иероглифы на странички сразу же стали обычным текстом (скрин ниже ��)!

Как узнать кодировку страницы в браузере?

Просматривая исходный код, нажмите CTRL+F (появится окно поиска — в разных браузерах — в разных местах). Поэтому можно в поиске ввести слово charset и посмотреть, что найдётся.

Как изменить кодировку текста в Word 2003?

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

Как изменить кодировку текста?

Изменить кодировку текстового файла, создаваемого в Windows можно легко с помощью встроенной программы «Блокнот». Для этого достаточно открыть требуемый файл и нажать «Файл» -> «Сохранить как». В выпавшем меню выбрать требуемую кодировку и сохранить текстовой файл.

Как определить кодировку текста онлайн?

Воспользуйтесь ссылкой выше или самостоятельно откройте главную страницу сайта Online Decoder, где сразу же активируйте поле для ввода и вставьте туда целевой текст. Напротив пункта «Раскодировать текст автоматически (рекомендуется)» нажмите по кнопке «Подбор» для запуска процесса распознавания.

Принудительное изменение кодировки в браузерах Google chrome, Opera, Firefox. Кодировка UTF – основной стандарт текста в интернете

Первая серьёзная проблема, с которой сталкиваются большинство новичков при , связана с набором символов (англ. character set ). Выражается эта проблема с кодировкой в, так называемых, «кракозябриках», которые мы получаем вместо указанных в HTML-файле символов. В данной статье я хочу остановиться на проблеме с кодировкой подробнее, постараться расставить всё по полочкам и дать варианты решения.

  • Что такое кодировка?
  • Кодировка файла (редактирование в Notepad++)
  • Кодировка отображения (просмотр в браузере)
  • Как указать кодировку HTML-страницы? (метатег charset)
  • Всё ещё есть проблема с кодировкой? (header charset в php)

Что такое кодировка?

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

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

Кодировка файла

HTML-страница представляет собой обычный текстовый файл, кодировка которого выбирается при его создании и/или сохранении на запоминающее устройство (жёсткий диск, флэшка и т.д.) .

В случае с Notepad++, кодировка нового документа задаётся в настройках текстового редактора. Выбираем в меню: Опции > Настройки… — и переходим на вкладку «Новый документ ». Здесь нас интересует секция «Кодировка ». По умолчанию, выбрана кодировка ANSI .

Напомню, что это кодировка, в которой будет храниться HTML-файл.

Впрочем, Вы всегда можете преобразовать кодировку HTML-страницы, используя соответствующие функции текстового редактора. Например, в Notepad++ для этого кликните пункт меню «Кодировки » и выберите нужное преобразование.

В данном случае файл был в кодировке ANSI и я преобразовал его в UTF-8 (без BOM) . О том, что такое этот BOM Вы можете прочитать в моей статье: PHP: как удалить BOM в WordPress — проследовав по .

Кодировка отображения

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

Например, если Вы сохранили HTML-страницу в кодировке ANSI и откроете её в браузере, вместо русских символов Вы можем получить, так называемые, «кракозябрики».

В данном случае нам надо убедиться, что кодировка файла совпадает с кодировкой отображения файла в браузере. Для этого в Firefox кликните иконку меню, а потом пункт «Кодировка ». Если такого у Вас нет, кликните пункт «Изменить » и добавьте элемент «Кодировка » в меню.

Как вы видите, браузер отображает файл в кодировке «Юникод » (например, UTF-8 ) , в то время как файл был сохранён в кодировке ANSI (например, Windows-1251 ) . Выбрав нужную кодировку, мы получим нужный нам результат.

В случае с Notepad++ также имеется возможность выбора кодировки отображения. Для этого кликните пункт меню «Кодировки », а потом нужный вариант используемой для отображения кодировки.

В данном случае я изменил кодировку отображения ANSI на UTF-8 (без BOM) .

Как указать кодировку HTML-страницы?

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

Почему возникают проблемы с кодировкой? Определить кодировку HTML-страницы не просто, а зачастую и не возможно, т.к. у того же браузера нет информации о ней или она указана неправильно.

Для того чтобы указать кодировку HTML-страницы используется специальный метатег. В HTML5 он имеет следующий урезанный вид:

В данном случае указана кодировка UTF-8 (Юникод) .

В более старых версиях HTML этот метатег имеет следующий вид:

Этот метатег создаёт HTTP-заголовок Content-Type , в котором указывается тип документа text/html и его кодировка Windows-1251 (ANSI) .

Лично я рекомендую использовать именно этот вариант, т.к. с ним будет меньше всего проблем. Главное чтобы такой метатег присутствовал в секции HEAD , и указанная в нём кодировка соответствовала кодировке файла. В большинстве случаев этого будет достаточно.

Всё ещё есть проблема с кодировкой?

В некоторых случаях указать метатег с кодировкой HTML-страницы будет недостаточно. Такая проблема может быть вызвана настройками самого сервера, на котором находится файл HTML-страницы. Дело в том, что сервер способен выдавать свой HTTP-заголовок Content-Type , который будет, условно говоря, иметь приоритет перед метатегом.

В данном случае эту проблему можно решить путём внесения изменений в настройки сервера. Я не буду вдаваться в детали данного вопроса и порекомендую лишь отключать всю эту перекодировку через файл .htaccess , например:

Также можно производить изменения HTTP-заголовка Content-Type и программными средствами. В том же PHP для этого используется функция header() , например:

P.S. Как было верно подмечено в комментариях, при обращении к MySQL для указания в какой кодировке обращаться к БД используется запрос:

Да и вообще везде, где идет ссылка на кодировку utf-8, например при создании таблицы:

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

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

Но передача текста в цифровом формате происходит совсем иначе, чем у нас на экране. Для перевода текста в машинный код используется двоичная система исчисления, состоящая лишь из 0 и 1.

Следующим этапом передачи текста в виртуальном пространстве является его отображение на клиентских машинах с помощью браузера, интерпретирующего html . Вот тут и начинается самое интересное, когда браузер клиента и веб-страница содержат в себе текстовые данные в разных кодировках. Тогда пользователь на своем мониторе видит не текст, а какие-то непонятные (нечитаемые ) символы:

Чаще всего нужно всего лишь поменять кодировку веб-страницы на кодировку utf8. Ведь она является наиболее распространенной во всем интернете.

Наиболее распространенная среди стандартизированных и общепринятых текстовых кодировок. Расшифровывается как «восьмибитный формат преобразования Юникода » или «Unicode Transformation Format ».

Стандарт был разработан еще в 1992 году. В настоящее время он широко применяется не только во всемирной паутине, но и на прикладном уровне (локальные машины и операционные системы ). Основным достоинством кодировки является ее совместимость с ASCII:

ASCII («American standard code for information interchange») еще одна (но более старая) кодировка представления текстовых данных. В ее таблице символов значения печатных и непечатных знаков заданы с помощью чисел в шестнадцатеричной системе исчисления.

При использовании UTF-8 для передачи данных в формате ASCII используются 7 первых битов. Последний (восьмой ) служит для вывода «мусора » (некорректно раскодированных данных ). Что при использовании кодировки для латинских символов существенно уменьшает объем текстовых данных.

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

Для установки utf 8 кодировки в html используется специальный тег . Он объединяет в себе в форме атрибутов значение метатегов.

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

Также можно установить кодировку некоторым элементам страницы. Например, ссылке. Для этого также используется атрибут charset , значением которого выступает нужная кодировка:

list of publications

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

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

Для установки и модификации значений заголовка используется функция header() . Ее синтаксис:

Void header (string $string [, bool $replace = true [, int $http_response_code ]])

Header(«Content-Type: text/html; charset= utf-8»);

Чтобы корректно задать в php кодировку utf 8 , вызов функции header() в коде должен находиться выше всех тегов html .

Глобальные настройки кодировки

Описанные выше методы могут использоваться для отдельных веб-страниц или небольших сайтов. Но что делать, если вы имеете дело с ресурсом, состоящим из нескольких сотен страниц и десятка разделов? Давайте разберемся, как установить кодировку utf 8 для всего сайта.

Для этого нужно вносить изменения в дополнительный файл конфигурации ресурса. Он носит название .htaccess . Сначала его нужно открыть в любом текстовом редакторе, а затем добавить туда строку:

В качестве более глобального способа изменения кодировки стоит рассмотреть пример на основе любого локального сервера. Для большей наглядности мы возьмем Denwer , который довольно широко распространен в наших краях.

Чтобы изменить кодировку всех ресурсов, размещенных на нашем сервере Apache , нужно отредактировать содержимое конфигурационного файла httpd.conf . Он находится по пути:

Как и в предыдущем примере, в нем нужно заменить значение AddDefaultCharset на нужное. В нашем случае это utf-8 :

Изменение кодировки базы данных

Изменение кодировки рассмотрим на примере MySQL . Так как это одна из самых востребованных и распространенных СУБД, применяемых в сайтостроении. Все изменения можно произвести в файле my.ini . В Денвере он находится по пути:

Здесь нужно поменять значение нескольких полей на utf-8 :

  • default-character-set ;
  • character-set-server ;
  • init-connect = «set names» ;
  • default-character-set .

И затем добавить строку :

Подобные изменения можно внести не только для всех баз данных на сервере, но и для отдельно взятой в php базы mysql . Сделать это можно через пользовательский интерфейс оболочки PHPMyAdmin .

Сначала узнаем, какие кодировки установлены по умолчанию в нашей базе данных. Для этого вводим запрос SQL :

SHOW VARIABLES LIKE «char%»;

Вот какой ответ мы должны получить:

Зайдите в «Блокнот». Напишите нужный вам текст . Сохраните его. Снова откройте этот текст. Зайдите во вкладку «Формат», которая находится на панели инструментов. Выберите пункт «Шрифт». Перед вами откроется окно. Выберите пункт «Terminal». Нажмите клавишу «Ок».

Для правильного отображения текста на русском языке, обычно, достаточно попробовать одну из следующих кодировок: Юникод (UTF-8), Кириллица (Windows-1251), Кириллица (KOI8-R), Кириллица (KOI8-U).

  • как поменять кодировку всего сайта

Текстовые документы бывают не только различных форматов. Зачастую текст сохраняется не только в стандартной кодировке Windows, но и во многих других. Если вы имеете текстовый документ в нестандартной кодировке, многие устройства и программы просто не смогут его прочитать. Изменить этот параметр можно при помощи разных приложений, например, самый простой путь – это воспользоваться MS Office Word.

Скачайте и установите программное обеспечение MS Office. Оно имеет пробный срок действия, поэтому вам совсем не обязательно приобретать лицензию для немногократного использования.

Щелкните правой кнопкой мыши по файлу, содержащему текст в кодировке, которую вы хотите поменять, а затем выберите пункт «Открыть с помощью Microsoft Word». Этого пункта может не быть, если программа была установлена недавно и с ним еще не была проведена процедура ассоциации типов файлов. Также вы можете просто открыть Word, и через меню «Файл» просто выбрать нужный вам документ. Если он ранее был сохранен не стандартной кодировке Windows, программа вам предложит варианты режима его открытия, выберите среди них нужный и нажмите кнопку «Ок».

Нажмите на пункт меню «Файл» в программе. Выберите «Сохранить как…», определите в появившемся окне директорию нахождения нового документа уже в новой кодировке, введите его имя и нажмите кнопку «Сохранить». У вас появится окно атрибутов файлов, поставьте нужное значение кодировки. Самой удобной и «читаемой» считается кодировка «Юникод».

Инструменты -> Настройки -> Содержимое -> Дополнительно -> Кодировка по умолчанию -> Юникод (UTF-8)
Что не понятно-то?!

Дело в том, что Кодировка по умолчанию используется при отображении страниц, у которых не указана кодировка.Проблема не в Firefox, а в той кодировке в которой набран документ. То есть в настойках Firefox может стоять какая угодно кодировка, но нужная вам отобразится правильно если просматриваемый документ будет сделан в UTF-8.

Андрей Болконский натолкнул на правильную мысль (спасибо ему). Нужно сделать так:
Вид -> Кодировка-> Автоопределение -> Универсальная

Никакой из браузеров никогда не анализирует кодировку отображаемого файла. Он не думая сразу отображает его в кодировке по-умолчанию.
Хотелось бы подчеркнуть, что все выше перечисленные варианты не совсем точны! Предложенные выше варианты будут работать ТОЛЬКО для одного конкретного пользователя, но никак не будут универсальным решением для всех пользователей сразу!

Как настроить кодировку сайта самостоятельно

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

Зачем нужна кодировка

Кодировка (Charset) — способ отображения кода на экране, соответствие набора символов набору числовых значений. О ней сообщает строка Content-Type и сервер в header запросе.

Несовпадение кодировок сервера и страницы будет причиной появления ошибок. Если они не совпадают, информация декодируется некорректно, так что контент на сайте будет отображаться в виде набора бессвязных букв, иероглифов и символов, в народе называемых «кракозябрами». Такой текст прочитать невозможно, так что пользователь просто уйдет с сайта и найдет другой ресурс. Или останется, если ему не очень важно содержание:

На сайте слетела кодировка, примерСтудентка списывала реферат с формулами, а на сайте слетела кодировка. Реальная история

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

Кодировка влияет на SEO?

Разберемся, как кодировка на сайте влияет на индексацию в Яндекс и Google.

Позиция Google такая же. Поисковики не рассматривают Charset как фактор ранжирования или сигнал для индексирования, тем не менее, она косвенно влияет на трафик и позиции.

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

Некорректно указана кодировка на сайтеПример страницы со слетевшей кодировкой

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

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

Существует довольно много видов, но сейчас распространены два:

Unicode Transformation Format — универсальный стандарт кодирования, который работает с символами почти всех языков мира. Символы могут занимать от 1 до 4 байт, такое кодирование позволяет создавать мультиязычные сайты.

Есть несколько вариантов — UTF-8, 16, 32, но чаще используют восьмибитное.

Windows-1251

Этот вид занимает второе место по популярности после UTF-8. Windows-1251 — кодирование для кириллицы, созданное на базе кодировок, использовавшихся в русификаторах операционной системы Windows. В ней есть все символы, которые используются в русской типографике, кроме значка ударения. Символы занимают 1 байт.

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

Как определить кодировку на сайте

Определить кодировку страницы своего или чужого сайта можно через исходный код страницы. Откройте страницу сайта, выберите «Просмотр кода страницы» (сочетание горячих клавиш Ctrl+U» в Google Chrome) и найдите упоминание «charset» внутри тега head.

На странице сайта используется кодировка UTF-8:

Как посмотреть, какая кодировка на сайтеУказание кодировки в коде страницы

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

Как определить кодировку на сайтеФрагмент анализа

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

Проверка кодировки на сайтеОтчет

Проверить кодировку еще можно через сервис Validator.w3, о котором писали в статье о проверке валидации кода. Нужная надпись находится внизу страницы.

Сервис для проверки кодировки на сайтеКодировка сайта в валидаторе

Если валидатор не обнаружит Charset, он покажет ошибку:

Некорректная кодировка, примерОшибка указания кодировки

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

Если кодировка не отображается

Если вы зашли на чужой сайт с абракадаброй, а вам все равно очень интересно почитать контент, то в Справке Google объясняют, как исправить кодирование текста через браузер.

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

Главное правило — для всех файлов, скриптов, баз данных сайта и сервера должна быть указана одна кодировка. Ошибка может возникнуть, если вы случайно указали на сайте разные виды кодировки.

Яндекс советует использовать одинаковую кодировку для страниц и кириллических адресов структуры. К примеру, если робот встретит ссылку href=»/корзина» на странице с кодировкой UTF-8, он сохранит ее в этом же UTF-8, так что страница должна быть доступна по адресу «/%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0».

Где указать кодировку сайта

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

  • кодировка в мета-теге;
  • кодировка в .htaccess;
  • кодировка документа;
  • кодировка в базе данных MySQL.

Кодировка в мета-теге

Добавьте указание кодировки в head файла шаблона сайта.

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

Мета-тег может выглядеть так:

В HTML5 они эквивалентны.

Где указывать кодировку на сайтеТег кодировки в HTML

В темах WordPress обычно тег «charset» с кодировкой указан по умолчанию, но лучше проверить.

Кодировка в файле httpd.conf

Инструкции для сервера находятся в файле httpd.conf, обычно его можно найти на пути «/usr/local/apache/conf/».

Если вам нужно сменить кодировку Windows-1251 на UTF-8, замените строчку «AddDefaultCharset windows-1251» на «AddDefaultCharset utf-8».

Убедитесь, что сервер не передает HTTP-заголовки с конфликтующими кодировками.

Кодировка в .htaccess

Добавьте кодировку в файл .htaccess:

  1. Откройте панель управления хостингом.
  2. Перейдите в корневую папку сайта.
  3. В файле .htaccess добавьте в самое начало код:
    1. для указания кодировки UTF-8 — AddDefaultCharset UTF-8;
    2. для указания кодировки Windows-1251 — AddDefaultCharset WINDOWS-1251.

    Кодировка документа

    Готовые файлы HTML важно сохранять в нужной кодировке сайта. Узнать текущую кодировку файла можно через Notepad++: откройте файл и зайдите в «Encoding». Меняется она там же: чтобы сменить кодировку на UTF-8, выберите «Convert to UTF-8 without BOOM». Нужно выбрать «без BOOM», чтобы не было пустых символов.

    Кодировка Базы данных

    Выбирайте нужную кодировку сразу при создании базы данных. Распространенный вариант — «UTF-8 general ci».

    Где менять кодировку у БД:

    1. Кликните по названию нужной базы в утилите управления БД phpMyAdmin и откройте ее.
    2. Кликните на раздел «Операции»:
    3. Введите нужную кодировку для базы данных MySQL:
    4. Перейдите на сайт и очистите кэш.

    Для всех таблиц, колонок, файлов, сервера и вообще всего, что связано с сайтом, должна быть одна кодировка.

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

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

    1. Подключитесь к серверу с правами mysql root пользователя:
      mysql -u root -p
    2. Выберите нужную базу:
      USE имя_базы;
    3. Выполните запрос:
      SET NAMES ‘utf8’;

    Если вы хотите указать Windows-1251, то пишите не «utf-8», а «cp1251» — обозначение для кодировки Windows-1251 у MySQL.

    Кодировки и веб-страницы

    Возвращаясь к избитой проблеме с кодировками русских букв, хотелось бы иметь под рукой некий единый справочник или руководство, в котором можно найти решения различных сходных ситуаций. В своё время сам перелопатил множество статей и публикаций, чтобы находить причины ошибок. Задача этой публикации — сэкономить время и нервы читателя и собрать воедино различные причины ошибок с кодировками в разработке на Java и JSP и способы их устранения.

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

    Итак, поехали.

    1. Проблема: при получении разработанной мной страницы браузером весь русский текст идёт краказябрами, даже тот, который забит статически.
    Причина: браузер неверно определяет кодировку текста, потому что нет явного указания.
    Решение: явно указать кодировку:
    a) HTML: добавляем тэг META в хидер страницы:

    б) XML: указываем кодировку в заголовке:

    в) JSP — задаём тип контента в заголовке:

    г) JSP — задаём кодировку возвращаемой страницы

    д) Java — устанавливаем хидер ответа:

    2. Проблема: написанный в JSP-странице статический русский текст почему-то идёт краказабрами, хотя кодировка страницы задана.
    Причина: статический текст был написан в кодировке, отличной от заданного странице.
    Решение: изменить кодировку в редакторе (например, для AkelPad нажимаем «Сохранить как» и выбираем нужную кодировку).

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

    Примечание: кодировка ISO-8859-1 устанавливается по умолчанию, если не была задана другая.
    б) Java, со стороны отправителя задана нужная кодировка — устанавливаем кодировку запроса:

    4. Проблема: отправленный GET-параметром русский текст при редиректе приходит кракозябрами.
    Причина: упаковка русского текста в URI по умолчанию идёт в ISO-8859-1.
    Решение: упаковать текст в нужной кодировке вручную.
    а) JSP, URLEncoder:

    5. Проблема: текст из базы данных читается кракозябрами.
    Причина: кодировка текста, прочитанного из базы данных, отличается от кодировки страницы.
    Решение: установить соответствующую кодировку страницы, либо перекодировать полученные из базы данных значения.
    а) Java, перекодирование считанной в db_string базы данных строки:

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

    б) Java, MySQL, настройка параметров подключения в строке dburl, передаваемой функции коннекта:

    в) MySQL, настройка параметров подключения в XML-описателе контекста, добавляем атрибут к тегу \<Resource\>:

    г) MySQL, прямая установка кодировки сессии вызовом SET NAMES (connect — объект подключения Connection):

    7. Проблема: если ничего не помогло…
    Решение: всегда остаётся самый «топорный» метод — прямое перекодирование.
    а) Для известной кодировки источника:
    [String MyValue = new String(source_string.getBytes(«utf-8″),»cp1251»);]

    б) Для параметра запроса:
    [String MyValue = new String(request.getParameter(«MyParam»).getBytes(request.getCharacterEncoding()),»cp1251″);]

    Дополнение, или что нужно знать:

    1. Кодировки базы данных и сессии подключения могут различаться, в зависимости от конкретной СУБД и драйвера. К примеру, при подключении к MySQL стандартным драйвером com.mysql.jdbc.Driver без явного указания кодировка сессии устанавливалась в UTF-8, несмотря на другую кодировку схемы БД.
    2. Кодировка упаковки строки запроса в URI по умолчанию устанавливается в ISO-8859-1. С подобным можно столкнуться, например, при передаче явно заданного текста в редиректе с одной страницы на другую.
    3. Взаимоотношения кодировок страницы, базы данных, сессии, параметров запроса и ответа не зависят от языка разработки и описанные для Java функции имеют аналоги для PHP, Asp и других.

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

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

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

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