Практическое применение кодирования информации. Кодирование информации

Любые числа (в определенных пределах) в памяти компьютера кодируются числами двоичной системы счисления. Для этого существуют простые и понятные правила перевода. Однако на сегодняшний день компьютер используется куда шире, чем в роли исполнителя трудоемких вычислений. Например, в памяти ЭВМ хранятся текстовая и мультимедийная информация. Поэтому возникает первый вопрос:

Как в памяти компьютера хранятся символы (буквы)?

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

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

Однако алфавитов в мире очень много (английский, русский, китайский и др.). Поэтому следующий вопрос:

Как закодировать все используемые на компьютере алфавиты?

Для ответа на этот вопрос пойдем историческим путем.

В 60-х годах XX века в американском национальном институте стандартизации (ANSI) была разработана таблица кодирования символов, которая впоследствии была использована во всех операционных системах. Эта таблица называется ASCII (American Standard Code for Information Interchange – американский стандартный код для обмена информацией). Чуть позже появилась расширенная версия ASCII.

В соответствие с таблицей кодирования ASCII для представления одного символа выделяется 1 байт (8 бит). Набор из 8 ячеек может принять 28 = 256 различных значений. Первые 128 значений (от 0 до 127) постоянны и формируют так называемую основную часть таблицы, куда входят десятичные цифры, буквы латинского алфавита (заглавные и строчные), знаки препинания (точка, запятая, скобки и др.), а также пробел и различные служебные символы (табуляция, перевод строки и др.). Значения от 128 до 255 формируют дополнительную часть таблицы, где принято кодировать символы национальных алфавитов.

Поскольку национальных алфавитов огромное множество, то расширенные ASCII-таблицы существуют во множестве вариантов. Даже для русского языка существуют несколько таблиц кодирования (распространены Windows-1251 и Koi8-r). Все это создает дополнительные трудности. Например, мы отправляем письмо, написанное в одной кодировке, а получатель пытается прочитать ее в другой. В результате видит кракозябры. Поэтому читающему требуется применить для текста другую таблицу кодирования.

Есть и другая проблема. В алфавитах некоторых языков слишком много символов и они не помещаются в отведенные им позиции с 128 до 255 однобайтовой кодировки.

Третья проблема - что делать, если в тексте используется несколько языков (например, русский, английский и французский)? Нельзя же использовать две таблицы сразу …

Чтобы решить эти проблемы одним разом была разработана кодировка Unicode.

Стандарт кодирования символов Unicode

Для решения вышеизложенных проблем в начале 90-х был разработан стандарт кодирования символов, получивший название Unicode . Данный стандарт позволяет использовать в тексте почти любые языки и символы.

В Unicode для кодирования символов предоставляется 31 бит (4 байта за вычетом одного бита). Количество возможных комбинаций дает запредельное число: 231 = 2 147 483 684 (т.е. более двух миллиардов). Поэтому Unicode описывает алфавиты всех известных языков, даже «мертвых» и выдуманных, включает многие математические и иные специальные символы. Однако информационная емкость 31-битового Unicode все равно остается слишком большой. Поэтому чаще используется сокращенная 16-битовая версия (216 = 65 536 значений), где кодируются все современные алфавиты.

В Unicode первые 128 кодов совпадают с таблицей ASCII.

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

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

1.1. Канал связи

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

Рис. 1.1. Блок-схема общей системы передачи или хранения информации.

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

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

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

Рис. 1.2, Блок-схема типичной системы передачи или хранения информации.

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

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

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

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

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

  1. Возьмём в качестве примера наш сайт: www.vashmaster.ru
  2. Все тексты сайта написаны и размещены на сайте в кодировке "windows-1251" и об этом браузеру не сообщается
  3. Сервер хостинга автоматически по умолчанию отправляет следующий заголовок:
    Content-Type: text/html; charset=utf-8

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

Правильная кодировка - это очень важно!

Попробуем объяснить почему.

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

Во-первых , в подобных условиях и настройках сайта, посетителям придётся постоянно в ручную (методом подбора) указывать браузеру кодировку для отображения сайта. Для этого потребуется сделать несколько лишних кликов мышкой. Но согласитесь, не каждому понравится делать лишних 2-3 клика мышкой, чтобы просто увидеть информацию на странице в читабельном виде . Тем более, что очень многие даже и не знают не только как сменить кодировку отображения в настройках браузера, но и что такое кодировка вообще! Большинство посетителей могут решить что сайт заброшен владельцем или кем-нибудь взломан, и постараются на него больше не возвращаться.

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

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

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

Настройки сайта должны быть такими, чтобы любой браузер или любой робот поисковой системы могли ОДНОЗНАЧНО определить в какой кодировке передаётся информация с сайта!

Решение проблемы с кодировкой сайта

Мы уже заметили, что все тексты на нашем сайте написаны и передаются в браузер посетителю сайта в кодировке "windows-1251". Что же сделать, дабы сервер, на котором размещён наш сайт, передавал браузеру в заголовке правильную информацию о кодировке? Давайте действовать по порядку...

1. Чтобы не зависеть от настроек сервера , на всех страницах сайта прямо в коде HTML нужно, используя мета-тег, явно прописать следующую директиву:

Разместить её необходимо на всех страницах, желательно, сразу же после открывающегося тега . Это позволит браузеру автоматически в момент загрузки и интерпретации страницы выбрать правильную кодировку отображения в соответствии с полученной директивой! Одной этой директивы должно быть достаточно для решения нашей проблемы. Но так задумывалось в теории. А на практике, этой директивы не всегда достаточно. В редких случаях, но бывает так, что браузер в качестве кодировки для отображения страницы выбирает не ту, что указана в директиве на самой странице, а ту, что была передана в заголовке от сервера! И если указанная в двух местах информация о кодировке не совпадает, то проблема может остаться.

2. Чтобы сервер отдавал в своём ответе правильную информацию о кодировке , необходимо в корне своего сайта создать файл .htaccess и прописать в нём директиву:

AddDefaultCharset windows-1251

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

Если файл .htaccess уже существует на вашем сервере, то просто добавьте указанную директиву, например, в самом начале. И ни в коем случае не удаляйте без надобности уже существующую в нём информацию!

Вот и всё решение проблемы. Согласитесь, всё это не так сложно?! Зато очень полезно для профилактики всевозможных проблем с пресловутой кодировкой.

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

Особые ситуации

Ситуация первая

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

Пропишите в файл .htaccess директиву:

AddDefaultCharset Off

При использовании данной директивы, сервер просто совсем не будет отсылать заголовок с информацией о кодировке передаваемой страницы. Тогда браузеры будут отталкиваться от данных по кодировке, которые указаны явно в коде HTML на самих страницах сайта. При этом на одной странице данные могут быть в кодировке windows-1251 , а на другой странице, например в utf-8 . Главное, не забыть указать на этих страницах соответствующие мета-теги с информацией о правильной кодировке для распознавания и отображения текста браузером.

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

Ситуация вторая

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

Решение подобных разногласий с данными, хранящимися в базе данных, достигается правильной явной установкой настроек кодировки при подключении к базе данных и до выполнения выборок данных из неё. Например, если данные на сайте у нас хранятся в кодировке windows-1251, то и читать данные из базы мы должны в этой же кодировке. Для этого, после выполнения подключения к базе с помощью функции PHP mysql_connect() (или mysql_pconnect()) выполните следующий запрос SQL:

mysql_query("SET NAMES cp1251");

Данный запрос, сообщает серверу базы данных MySQL, что все данные хранятся и должны передаваться в кодировке cp1251 (именно такое название кодировки используется в MySQL вместо упоминаемого ранее названия windows-1251, которое используется при передачи данных HTML).

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

На заметку

Если вы посетили сайт, у которого по каким-либо причинам сбилась кодировка, но вам очень нужно получить на нём полезную информацию (не дожидаясь, когда разработчики сайта выполнят вышеперечисленные нами рекомендации), то следует в ручную в настройках браузера указать правильную кодировку страницы. Сделать это можно обычно через основное меню браузера: Вид -> Кодировка -> Далее выберите из списка название предполагаемой кодировки страницы. Возможно, чтобы угадать, вам придётся проделать данную процедуру не один раз, выбирая то одно, то другое название из списка кодировок. Чтобы ускорить процесс подбора, рекомендуем перебирать их в следующем порядке: Кириллица (Windows-1251) , Кириллица (UTF-8) , Кириллица (KOI 8-R) . Это наиболее часто используемые кодировки на сайтах в Рунете.

На сегодняшний день кодировка ASCII представляет собой стандартом представления первых 128-значений (включая цифры и знаки препинания) английского алфавита, представленных в определенном порядке.

Однако, даже 1 байт позволяет закодировать в 2 раза больше значений, то есть не 128, а целых 256 разных значений. Поэтому достаточно быстро на смену базовой ASCII стали появляться более расширенные варианты этой знаменитой и популярной по сей день кодировки, в которых кодировались также символы алфавитов и, соответственно, текста различных языков, в том числе и русского.

Расширения ASCII для России

На сегодняшний день для российских пользователей приоритетными являютсякодировка Windows1251 и кодировка юникод, а также UTF 8 , которые произошли от ASCII .

Собственно говоря, у кого-то может возникнуть весьма справедливый вопрос: «А зачем вообще нужны эти кодировки текстов?»
Стоит помнить, что компьютер - это всего-навсего машина, которая должна действовать четко по инструкциям. Чтобы было понятно, что нужно делать с каждым символом написанного, его представляют в виде набора векторных форм, каждый набор которых отправляет в нужное место, чтобы на экране появлялось то или иное обозначение.

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

Кодировка CP866 и KOI8-R широко применялись до появления графической операционной системы, завоевавшей популярность во всем мире, - Windows . Теперь самой популярной кодировкой, поддерживающей русский, стала Windows1251 .

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

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

Универсальные кодировки

Первой версией универсальной кодировки, разработанной в рамках консорциума Юникод, была кодировка UTF 32 . Для кодирования каждого символа использовалось 32 бита. Теперь была реализована возможность кодирования огромного количества знаков, но появилась другая проблема -большинству европейских стран такое число лишних символов было совершенно не нужно. Ведь документы получались очень тяжелыми. Поэтому на смену UTF 32 пришла UTF 16 , ставшая базовой для всех символов, используемых в нашей стране и не только.

Но все равно оставалось достаточно много недовольных. Например, те, кто общался только на английском языке, так как при переходе с ASCII на UTF 16 их документы все равно увеличивались в размерах, причем существенно, практически в 2 раза.
В результате появилась кодировка переменной длинны UTF 8 , что позволило не увеличивать вес текста.

Кракозябры и методы борьбы с ними

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

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

Поэтому, следует сохранять все, что набрано в редакторе, без маркеров (BOM ), чтобы снизить вероятность появления кракозябров в документе.

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

Например, так

Создание формы обратной связи

О проблемах с кодировкой файлов

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

Рассмотрим это вопиющее недоразумение подробнее. Как известно, кодировка (charset) - это метод представления символов для их передачи. В конце концов, любая информация, циркулирующая в компьютере - это последовательность нулей и единиц. Кодировка символов состоит из нескольких байтов, обычно от 1 до 4. Кодировок существует множество, и браузер должен правильно определить, в какой из них написана открываемая страничка сайта.

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

Начинающие веб-дизайнеры иногда ошибочно считают, что достаточно вставить нужный мета-тег в начало страницы - и всё будет ОК! Это заблуждение. Как справедливо писал Козьма Прутков: "Если на клетке со слоном увидишь надпись "Буйвол" – не верь глазам своим." Необходимо не только написать, к примеру, charset=utf-8, но и проследить, что страница реально сделана в указанной кодировке .

Истинную кодировку страницы проще всего узнать, открыв её в любом браузере и выбрав в меню пункт Вид - Кодировка . Изменяя кодировки, определите, при какой из них страница отображается правильно - это и будет ваша реальная кодировка. Её и указывайте в мета-теге. Если вы хотите изменить кодировку, то для этого необходимо зайти в установки программы, с помощью которой вы создаете сайт, и задать требуемую кодировку. Например, в программе Adobe Dreamweaver для этого надо выбрать раздел меню Редактировать - Установки...- Создать документ - Кодировка по умолчанию . Обычно используют кодировки charset=utf-8 или charset=windows-1251 .

Замечание : мета-тег указания кодировки желательно размещать в самом начале HTML-кода сразу за тегом , чтобы браузер выбрал правильную кодировку уже перед выводом названия страницы (тег ...), которое показывается на синей полосе вверху окна браузера. В противном случае, вместо мы можем увидеть всё те же замечательные квадратики и ромбики.</p> </blockquote> <p>Абсолютно не нужные нам проблемы с кодировкой возникают и тогда, когда страничка сайта состоит из нескольких файлов, например, вставки фреймов, скриптов <b>JavaScript </b> и т.п. Необходимо следить, чтобы все эти части были созданы в одной кодировке. Кстати, именно для этого случая в почтовых программах, например, на mail.ru , обычно есть несколько кнопок ручного переключения кодировок, так как автоматически определить, в какой кодировке написано приходящее на почту письмо, иногда бывает затруднительно.</p> <p>Возвращаясь к нашей форме обратной связи , следует учесть, что данные о кодировке сообщения могут измениться при пересылке. Упрощенно, механизм доставки письма с формы на ваш E-mail выглядит следующим образом. Сначала письмо попадает на промежуточный <a href="/kak-pravilno-sozdat-pochtovyi-yashchik-kak-sozdat-vtoroi-pochtovyi-yashchik-na-yandekse/">почтовый ящик</a> на сервере вашего хостинга, а уже с него посылается на указанный вами в РНР-файле адрес. Этот промежуточный ящик вы легко найдете, заглянув в панели управления вашего сайта в раздел <b>Почта </b>. Весь этот процесс происходит под управлением РНР-программы. Следовательно, в ней тоже полезно лишний раз указать правильную кодировку вашего файла.</p> <p>Для этого необходимо в РНР-файле (в нашей форме <a href="/knopka-obratnoi-svyazi-wordpress-kak-sozdat-kontaktnuyu-formu/">обратной связи</a> это <b>mail.php </b>) добавить строку заголовков (<b>headers </b>), которая служит для определения в <a href="/portativnaya-pochtovaya-programma-pochtovyi-klient-osobennosti-vybora-pochtovoi-programmy/">почтовой программе</a> некоторых <a href="/dopolnitelnye-nastroiki-windows-10-video-kak-otklyuchit-vizualnye-effekty-otkryt/">дополнительных параметров</a> письма: тип документа <b>text/plain </b> (простой текст), адрес отправителя, кодировку и др. Для нашего случая добавим следующую строчку заголовков(<b>headers </b>)с указанием кодировки:<br> $to = "pupkin@rambler.ru "; //Здесь укажите свой адрес<br> $headers = "Content-type: text/plain; charset=utf-8";<br> $subject = "Сообщение с вашего сайта";<br> $message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";<br> $send = mail ($to, $subject, $message, $headers);</p> <p>Так же неплохо сообщить браузеру о правильной кодировке добавлением в РНР-страницу отправки формы обратной связи (см. "Создание формы обратной связи ") заголовка с мета-тегом<br> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />.</p> <p>Проблемы с кодировкой возникают и в том случае, если вы используете на странице скрипты для вывода какого-либо текста, например, бегущей строки, даты и т.п. Для изменения кодировки скрипта можно воспользоваться <b><a href="/detalnyi-gid-po-ispolzovaniyu-microsoft-word-funkcii-tekstovogo/">Microsoft Word</a> </b>. Для этого откройте документ, задайте нужную кодировку, если он выводится неверно (как это сделать, смотрите в "Справке Word"), а затем сохраните его следующим путем: <b>Файл - Сохранить как - Обычный текст - Сохранить </b>. В открывшемся окне вы можете задать необходимую кодировку, совпадающую с кодировкой вашей страницы.<br></p> <p>К сожалению, описанные <a href="/chertezhi-moshchnoi-tv-antenny-neuverennogo-priema-prosteishii-variant-antenny/">простые приемы</a> указания кодировки не всегда избавляют от ошибок при её определении. Иногда требуется серьезное хирургическое вмешательство в работу РНР-машины. <a href="/kak-kopirovat-mp3-s-diska-na-kompyuter-kak-skinut-nuzhnuyu/">Нужную информацию</a> о таких операциях вы без труда, но при наличии желания, найдете в справочнике под названием "Интернет" - мышь вам в руки!</p> <p><i> 18.03.2011 г. </i></p> <ul> Ещё статьи по теме "Создание, оптимизация и раскрутка сайта": </ul> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> <div class="clear"></div> </div> </article> <div class='yarpp-related'> <section id="related_posts"> <div class="block-head"> <span>Больше информации по теме</span> <div class="stripe-line"></div> </div> <div class="post-listing"> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/2149de5b0a55068109f0b44c11d741b3.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Яндекс Пипл — поиск людей в соц" / loading=lazy></div> <a class="post_7839" href="/kak-naiti-cheloveka-v-internete-samye-prostye-metody-yandeks-pipl-poisk-lyudei-v/">Яндекс Пипл — поиск людей в соц</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/14804da2c8935d3aeddfb0e10957d20d.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Исправляем проблемы с загрузчиком используя командную строку" / loading=lazy></div> <a class="post_7839" href="/fixboot-smogla-naiti-sistemnyi-disk-ispravlyaem-problemy-s/">Исправляем проблемы с загрузчиком используя командную строку</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/d0db4e02378ad6b5b4953112dac80a72.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Украли телефон - что делать?" / loading=lazy></div> <a class="post_7839" href="/ukrali-telefon---chto-delat-kak-otsledit-telefon-kak-naiti/">Украли телефон - что делать?</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/b74e9d30305c73622b2ca923e829131f.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Bootstrap - Создание галереи изображений" / loading=lazy></div> <a class="post_7839" href="/menyayushchiesya-fotografii-v-setke-jquery-bootstrap---sozdanie-galerei-izobrazhenii/">Bootstrap - Создание галереи изображений</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/f53f780e3202488bef1a4da82abf5f64.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Как сделать автообновление страницы в яндекс браузере Автообновление в Opera" / loading=lazy></div> <a class="post_7839" href="/avtoobnovlenie-stranicy-v-brauzere-kak-sdelat-avtoobnovlenie-stranicy-v-yandeks/">Как сделать автообновление страницы в яндекс браузере Автообновление в Opera</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/5a2d59797697e8ee393a793dcd631195.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Как сделать приложение или игру для андроид Способы и стоимость создания приложения" / loading=lazy></div> <a class="post_7839" href="/razrabotka-android-prilozhenii-osnovnye-instrumenty-kak-sdelat/">Как сделать приложение или игру для андроид Способы и стоимость создания приложения</a></div> </div> </section> </div> <div id="comments"> <ol class="commentlist"> <div class='rreekk' rel='15'> <div id="smartrotator_ad_4" onclick="yaCounter40492595.reachGoal ('tizercommentbefore1'); return true;"></div> </div> </ol> <div class="clear"></div> <div id="respond" class="comment-respond"> </div> </div> </div> <aside id="sidebar"> <div class="theiaStickySidebar"> <div class="execphpwidget"> <div id="text-4" class="widget widget_text"> <div class="widget-top"> <span>Полезное</span> <div class="stripe-line"></div> </div> <div class="widget-container"> <div class="textwidget"> <style> .wpp-list li img { -webkit-border-radius: 65px; -moz-border-radius: 65px; border-radius: 65px; } .wpp-list li .post-views { display: block; margin-left: 70px; color: #828283; font-size: 12px; } .wpp-list li .post-views i { font-size: 13px; } .wpp-list li { line-height: 22px !important; } .replacemy { cursor: pointer; } } </style> <ul class="wpp-list"> <li> <div class="replacemy"><img src="/uploads/94f5519ca237e87c01dbae1bd1314479.jpg" width="65" height="65" title="Что делать, если вместо текста иероглифы (в Word, браузере или текстовом документе) Непонятные иероглифы вместо букв" alt="Что делать, если вместо текста иероглифы (в Word, браузере или текстовом документе) Непонятные иероглифы вместо букв" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></div><a href="/v-dokumentah-vmesto-teksta-otobrazhayutsya-ieroglify-chto-delat-esli-vmesto/" class=""><br>Что делать, если вместо текста иероглифы (в Word, браузере или текстовом документе) Непонятные иероглифы вместо букв</a></li> <li> <div class="replacemy"><img src="/uploads/676f48b5f6d021bdc3d89bee705135d7.jpg" width="65" height="65" title="Часы пропеллер на pic16f628a своими руками" alt="Часы пропеллер на pic16f628a своими руками" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></div><a href="/chasy-propeller-na-pic16f628a-svoimi-rukami-chasy-boba-blika-chasy/" class=""><br>Часы пропеллер на pic16f628a своими руками</a></li> <li> <div class="replacemy"><img src="/uploads/3717c2a058018e21f48abfc24ef969e2.jpg" width="65" height="65" title="Почему Не работает вентилятор на ноутбуке!" alt="Почему Не работает вентилятор на ноутбуке!" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></div><a href="/kompyuter-ne-vklyuchaetsya-no-ventilyatory-sistemnogo-bloka-rabotayut-pochemu-ne/" class=""><br>Почему Не работает вентилятор на ноутбуке!</a></li> <li> <div class="replacemy"><img src="/uploads/9639f33d2a4dc30cfae59fe9bc04e261.jpg" width="65" height="65" title="Калорийность, химический состав и пищевая ценность" alt="Калорийность, химический состав и пищевая ценность" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></div><a href="/recept-morkov-po-koreiski-kaloriinost-himicheskii-sostav-i-pishchevaya/" class=""><br>Калорийность, химический состав и пищевая ценность</a></li> <li> <div class="replacemy"><img src="/uploads/e8d1bcbcf38a224a1ea68181a334123c.jpg" width="65" height="65" title="Почему картридж может течь после заправки Что делать если картридж подтекает" alt="Почему картридж может течь после заправки Что делать если картридж подтекает" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></div><a href="/vozmozhnye-neispravnosti-kartridzhei-struinyh-printerov-i/" class=""><br>Почему картридж может течь после заправки Что делать если картридж подтекает</a></li> </ul> </div> </div> </div> </div> </div> <div> </div> </aside> <div class="clear"></div> </div> <footer id="theme-footer"> <div id="footer-widget-area" class="wide-narrow-2c"><div id="footer-first" class="footer-widgets-box"><div id="text-2" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"> <p>Все о современной технике. Ошибки. Игры. Поломки. Техника. Интернет <p></p> </div></div></div></div><div id="footer-second" class="footer-widgets-box"><div id="text-3" class="footer-widget widget_text"> <div class="footer-widget-top"></div> <div class="footer-widget-container"> <div class="textwidget"><a href="/sitemap.xml">Карта сайта</a></div> </div> </div><div id="text-7" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"><br> <a href="/feedback/">Обратная связь</a> </div></div></div></div></div><div class="clear"></div> </footer> <div class="clear"></div> <div class="footer-bottom"> <div class="container"> <div class="alignright"></div> <div class="alignleft"> © Copyright 2024, https://qzoreteam.ru</div> <div class="clear"></div> </div> </div> </div> </div> </div> <div id="topcontrol" class="fa fa-angle-up" title="Перейти к началу страницы"></div> <div id="fb-root"></div> <script type="text/javascript"> jQuery(function($) { $(document).on("click", ".pseudo-link", function() { window.open($(this).data("uri")); }); }); </script> <script type='text/javascript'> /* */ var tocplus = { "smooth_scroll": "1", "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "310px" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-polls/polls-js.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript'> /* */ var tie = { "mobile_menu_active": "true", "mobile_menu_top": "", "lightbox_all": "", "lightbox_gallery": "", "woocommerce_lightbox": "", "lightbox_skin": "dark", "lightbox_thumb": "vertical", "lightbox_arrows": "true", "sticky_sidebar": "", "is_singular": "1", "SmothScroll": "true", "reading_indicator": "", "lang_no_results": "\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c", "lang_results_found": "\u041d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/tie-scripts.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/ilightbox.packed.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript'> /* */ var gglcptch_pre = { "messages": { "in_progress": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Google reCAPTCHA.", "timeout": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c Google reCAPTCHA. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0412\u0430\u0448\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443." } }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/pre-api-script.js'></script> <script type='text/javascript' data-cfasync="false" async="async" defer="defer" src='https://www.google.com/recaptcha/api.js?onload=gglcptch_onload_callback&render=explicit'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/script.js'></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/my.js"></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/etimer.js"></script> </body> </html>