Как посмотреть кодировку сайта
Перейти к содержимому

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

  • автор:

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

В видео о том, как сделать поиск на сайте от Google я чуть упомянул про кодировку. А в этой маленькой статье опишу данный процесс текстом.

Сначала, кстати, рекомендую почитать статью «что такое кодировки текста«.

Если вы хотите знать, какова кодировка на страницах вашего интернет-проекта, то проще всего сделать это так:

  1. Откройте любую веб-страницу
  2. «Взгляните» на её исходный код. Сделать это можно, нажав сочетание клавиш CTRL+U, — если не помогает, то щёлкните правой кнопкой мышки на любом месте страницы и в появившемся меню выберите что-то вроде этого:

Просмотр кода страницы в Google Chrome

Мета тег с кодировкой

Мета тег с кодировкой (UTF-8)

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

кодировка сайта

Наверное, это всё про то, как можно узнать кодировку сайта. Хотя очень велика вероятность, что это будет UTF-8 (и вероятность поменьше, что будет windows-1251). Если, например, вы создали сайт на WordPress, то можете вообще не проверять — там точно UTF-8.

Сейчас всё больше и больше веб-ресурсов создаются в кодировке UTF-8. Скорей всего, и ваш там

Непонятные символы на сайте. Как задать кодировку страницы?

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

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

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

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

непонятные символы в браузере

На картинке выше сделан скриншот заголовка данной статьи при несовпадении кодировки текста и кодировки в браузере. Т.к. тексты всего проекта web-ru.net в UTF-8, а просмотр был произведён в windows-1251, то показаны такие символы.

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

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

Есть 3 способа сделать это. Но лучше их сразу совместить.

Файл(ы)

Необходимо чтобы файл страницы, или файлы шаблонов (если сайт на движке) были бы все в одной кодировке, например, в UTF-8. Почитайте, как сменить кодировку файла быстро.

Мета-тег

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

Надо вставить его в раздел head — лучше в самое начало, сразу после открывающего head:

мета-тег charset

Через .htaccess (если ничего не помогает)

Обычно первых двух вариантов достаточно и браузеры отображают текст как надо. Но с некоторыми из них могут быть проблемы и поэтому можно прибегнуть к помощи файла .htaccess.

Для этого в нём нужно прописать такую строчку:

Вот и всё. Если вы примените последовательно 3 этих способа задания кодировки на своём проекте, то вероятность того, что всё будет отображено как надо, близка к 100 %.

Как «увидеть», что скрывается за непонятными символами на сайте?

Если вы зашли на веб-страницу, видите «кракозябры» и хотите увидеть нормальный текст, то тут только два пути:

  • сообщить сайтовладельцу, чтобы всё настроил как следует
  • попытаться угадать кодировку самостоятельно. Делается это стандартными средствами браузеров. В Chrome, например, нужно в меню щёлкнуть «Инструменты => Кодировка» и из огромного списка выбрать подходящий набор символов (т.е. угадать).

К счастью, практически все современные веб-проекты делаются в кодировке UTF-8, которая является «универсальной» для разных алфавитов и поэтому всё менее и менее вероятно увидеть эти непонятные символы в Интернет.

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

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

iconv("windows-1251","utf-8",$name) 

Как определить, какая кодировка установлена на сайте? P.S. Мета-тегов там нет.
Отслеживать
15.4k 29 29 золотых знаков 19 19 серебряных знаков 29 29 бронзовых знаков
задан 6 июн 2012 в 13:45
11 2 2 серебряных знака 5 5 бронзовых знаков
В 2023 году вопрос для указанного сайта неактуален, кодировка указана в мета-теге:
18 дек 2023 в 8:47

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Вот большая статья на эту тему.

Однозначно могу сказать одно — если хотите качественно, то самый надежный способ — это иметь таблицу соответствий сайт-кодировка для тех, которые не определяются правильно. А все остальные по meta тегам и http заголовкам.

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

Отслеживать
ответ дан 9 июн 2012 в 9:43
112k 6 6 золотых знаков 93 93 серебряных знака 159 159 бронзовых знаков

Вот насчет разных страниц в разной кодировке правильно подмечено. Хотя для предложенного в вопросе сайта FF определил, что там cp1251. Почему у TC каша после iconv() ? Видимо надо конкретней разбираться.

Как декодировать URL сайта?

Дело в том, что я люблю парсить сайты на Javascript. Всем известно, что кирилические УРЛ при копировании со строки браузера встают в коды %АА и другие. Их можно вернуть в человеческий вид с помощью decodeURI. Но вот мой робот в процессе работы наткнулся на невероятно ужасный сайт, который, видимо, сам кодирует URL. Вот этот код выдает ошибку:

decodeURI("http://www.forum.nedug.ru/showthread.php?11499-%EA%E0%EB-%F7%E5%F0%ED%EE%E3%EE-%F6%E2%E5%F2%E0"); 

malformed URI sequence

Как мне обойти такие ужасные сайты? Как знать, какой на самом деле у них УРЛ (битый или норм)?
Отслеживать
51.3k 87 87 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
задан 5 авг 2011 в 19:40
jfjgjkslxd jfjgjkslxd
58 2 2 серебряных знака 9 9 бронзовых знаков

Так как правильного ответа не последовало, я решил сам решить проблему. Решение вылилось у фунцкию. function decodeURISafe(uri) < var res; try < res = decodeURI(uri) >catch(e) < res = uri; >return res; > Заменил ВСЕ функции decodeURI на decodeURISafe. Уже проверил, работает чётко. Ну а против уродливых сайтов я ничего не могу сделать, придется смотреть на их ужасные УРЛ 🙁

6 авг 2011 в 20:15

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Меньше криков, больше разума)

Все не так плохо и тем более ошибка (невнимательность) здесь ваша. А все потому, что страница, на которой вы это парсите — в UTF8 (2bytes/char), а forum.nedug.ru в CP1251 (1byte/char). Разбирайте заголовки META, смотрите кодировку в них (charset=windows-1251 например) и приводите все к utf-8.

А вообще неблагодарное это дело — парсить сайты на JS, и ваш вопрос — одна из причин.

Отслеживать
ответ дан 5 авг 2011 в 20:44
14.3k 1 1 золотой знак 21 21 серебряный знак 35 35 бронзовых знаков

Абсолютно с вами не согласен, насчет того что на JS парсить сайты — неблагодарное дело и вот почему — браузер приводит любые страницы к валидному виду (учитывая частую криворукость вебмастеров, а также их не желание соответствовать стандартам и лишний раз заглянуть на htmlbook.ru) это решает много проблем, а добавьте сюда что-нибудь по типу jQuery с ее селекторами (и прочими вкусностями) и работа с DOM деревом облегчается в разы. К тому же jquery позволит весьма элегантно отправить распарсенные данные на сервер аяксом.

5 авг 2011 в 21:28

Ага, только библиотеки для парсинга в php есть и они работают, а библиотеки для перекодировки (1252-юникод например) под js я, конечно, встречал, но с каким-нибудь нетбуком это муки адские. Хотя, возможно, кому-то это нравится, не спорю. Да и дело даже не в этом. Это утилита «для себя», не больше, потому что такую штуку еще и кроссбраузерной делать — да я лучше руками данные вытаскивать буду) Имеется в виду не вытаскивание тайтлов, а что-то посерьезнее да с обработкой.

5 авг 2011 в 21:41

PHP не заточен для работы со сгенерированным контентом, в отличии от JS. Хм, да проблемы с кодировкой могут возникнуть, но стоит указать у стрички с js парсером туже кодировку что и у контента, который предстоит парсить, и проблема исчезает :). Я бы даже сказал, что это дело привычки — наверно, по началу будет тяжело, но как только выработается общий алгоритм, набьется глаз и рука парсеры на js станут обыденностью 🙂

5 авг 2011 в 22:14

Вообще-то сайт выкачивается на РНР через CURL, потом обрабатывается на PHP Simple HTML DOM Parser, и все это возвращается в JavaScript для дальнейшей обработки. Проблема кодировки уже давно решена, любой сайт автоматически кодируется в UTF-8 посредством iconv. Кривой сайт, это точно! Зайдите через новейшую Firefox или Opera!

6 авг 2011 в 9:30

Ммм понимаете в чем дело) %E5 в юникоде не изменится. Поэтому надо сначала декодировать с rawurldecode (получите ссылку в win-1251), а потом уже конвертировать в юникод.

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

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