• доступно о веб-разработке
05.10.2012 Интернет , ,

Кодировка

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

Кодировка, простыми словами — это таблица языковых символов.

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

Отличный развернутый текст по теме кодировок представлен в статье «Кодировка текста и кракозябры — ASCII, юникод и UTF 8, расширенная ASCII (Windows 1251, CP866, KOI8-R), проблемы с кодировкой текстов».

Картинка из той статьи для ясности:

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

Кодировок существует море. Например, раньше основной кириллической кодировкой Windows была KOI8-R. Это еще в совсем незапамятные времена.

В начале XXI века самой популярной стала Windows-1251, которая используется до сих пор.

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

Ровно тоже самое было и с другими локальными кодировками.

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

Более подробно вы можете прочесть об этом в Вики:

http://ru.wikipedia.org/wiki/Юникод

Юникодовая кодировка UTF-8 на данный момент является самой распространённой, и мы работаем только с ней.

Почему? Если вы откроете свой сайт в кодировке Windows-1251, с компьютера из Японии, то вы не сможете его прочесть. Просто потому что у вашего знакомого японца на компьютере не установлена русская кодировка.

А универсальная юникодовая кодировка по-умолчанию ставится везде!

Запомните это название друзья, раз и на всю жизнь, — UTF-8.

Браузер

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

И у некоторых после открытия она выглядела вот так:

Что же делать? Кричать «Караул!»? Без паники.

Вы можете исправить ситуацию несколькими способами.

Способ 1

Любой браузер дает возможность вручную переключать кодировку. Вот как это делается в Chrome (в остальных по аналогии):

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

Способ 2

Вставить внутри тега <head> мета-тег кодировки:

<meta content=»text/html; charset=utf-8″ http-equiv=»Content-Type»>

Браузер, открывая страницу, прочитает его и выберет нужную кодировку.

Способ 3

Выше мы задали кодировку, в которой страницу трактует браузер.

Но можно задать кодировку самого текста в Notepad++.

Текущая указывается справа внизу окна:

ANSI — это родная кодовая страница Windows.

Поэтому в данном окне мы русские буквы видим нормально, а в браузере — нет.

Что можно сделать? Сменить кодировку на UTF-8.

Но в итоге перекодируется весь текст:

Нет, нам данный вариант не подходит.

Возвращаем обратно в прежнюю кодировку — Кодировки, Кодировать в ANSI.

Теперь копируем весь текст, нажимая Ctrl+A(выделить все) и Ctrl-X(вырезать).

Пустое окно редактора.

Выбирает — Кодировки, Кодировать в UTF-8.

И вот теперь жмем Ctrl+V, вставляя текст из буфера обмена.

Все, вот теперь порядок.

 

Выводы следующие, которые необходимо запомнить.

  1. Создавая новый документ, следите, чтобы он был в UTF-8 изначально.
  2. Если отображается в браузере неправильно, ставьте мета-тег. Способ 2.
  3. Способ 1 — он только для вас на конкретный момент. У других людей, открывших файл, могут быть проблемы.
Есть еще несколько способов, но они уже относятся к настройке сервера.
Надеюсь, вы усвоили основные постулаты, и теперь знаете, как превратить иероглифы в родные русские буквы.

 

Поделиться

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

Читайте ранее:
Стоимость сайта
Стоимость сайта

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

Закрыть