<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

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

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

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

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

Одной из самых частых проблем, с которой сталкивается начинающий Web-мастер (да и не только начинающие), это проблемы с кодировкой на сайте. Даже у меня постоянно появляется при создании сайтов "абракадабра". Но, благо, я прекрасно знаю, как эту проблему решить, поэтому всё привожу в порядок в течение нескольких секунд. И в этой статье я постараюсь научить Вас также быстро решать проблемы, связанные с кодировкой на сайте.

Первое, что стоит отметить, это то, что все проблемы с появлением "абракадабры" связаны с несовпадением кодировки документа и кодировки, выставляемой браузером. Допустим, документ в windows-1251, а браузер почему-то выставляет UTF-8. А уже источником такого несовпадения могут быть следующие причины.

Первая причина

Неправильно прописан мета-тег content-type. Будьте внимательны, в нём всегда должна находиться та кодировка, в котором написан Ваш документ.

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

Вторая причина

Вроде бы, мета-тег прописан так, как Вы хотите, и браузер выставляет именно то, что Вы хотите, но почему-то всё равно с кодировкой проблемы. Здесь, почти наверняка, виновато то, что сам документ имеет отличную кодировку. Если Вы работаете в Notepad++, то внизу справа есть название кодировки текущего документа (например, ANSI). Если Вы ставите в мета-теге UTF-8, а сам документ написан в ANSI, то сделайте преобразование в UTF-8 (через меню "Кодировки" и пункт "Преобразовать в UTF-8 без BOM").

Третья причина

Мета-тег написан правильно, кодировка документа верная, но браузер почему-то настойчиво выбирает другую кодировку. Это уже связано с настройками сервера. Способ решения данной проблемы можно прочитать здесь: как задать кодировку в htaccess.

Четвёртая причина

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

SET NAMES 'utf8'

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

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (31):

malina95 malina95 12.09.2012 20:07:43

Помогите пожалуйста мне...Я делаю чат и все сообщения заносятся в файл log.html...но при выводе они становятся кракозябрами(русские буквы, а с английскими всё нормально)...Что мне делать

Ответить

malina95 malina95 12.09.2012 21:27:14

Всё исправил но непонятно как... надо было обработчик и файл с сообщениями поставить в кодировку utf-8 а всё остальное оставить в кодировке windows-1251...И как он вообще работает...Интересно

Ответить

salikov salikov 17.01.2013 20:37:13

поменяй все на юникод тогда будет работать или своем браузере поменяй кодировку

Ответить

dv888 dv888 16.03.2013 02:13:48

Здравствуйте Михаил! Проблема такая: в файле html кодировка написана так:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />, в проге нотпад++ стоит галочка UTF-8 без БOМ, при написание заголовка русские буквы видит коряво а англ норма, ставлю просто утф 8 все нормально! а рекомендуется делать без бoм! В чем проблема и как ее решить??? Спасибо!

Ответить

Twist-tracer Twist-tracer 21.08.2013 06:20:46

Аналогично...

Ответить

sallevan sallevan 03.06.2013 19:39:33

Спасибо Михаил))я разобрался со своей проблемой))спасибо)Удачи)

Ответить

Twist-tracer Twist-tracer 20.08.2013 21:28:40

У меня почему то с UTF 8 без BoM не работает, а с обычным Utf 8 прекрасно, чем они отличаются кто нить может объяснить?

Ответить

Admin Admin 21.08.2013 19:45:20

Они ничем не отличаются кроме того, что с BOM в начало файла добавляются невидимые символы, которые могут помешать в работе с php

Ответить

Twist-tracer Twist-tracer 21.08.2013 20:34:19

А что если заголовок (title) в кодировке без BOM отображается не корректно. Вы как это исправили, Михаил?

Ответить

Admin Admin 22.08.2013 18:00:26

Такого быть не должно. utf-8 без bom это практически та же кодировка.

Ответить

Ustinochka Ustinochka 25.08.2014 18:03:49

Обычная UTF-8 оставляет отметку которая указывает что файл записан в кодировке UTF-8, но как сказал выше Михаил это может помешать работе PHP. То что браузер без этой пометки не может определить кодировку файла ваша ошибка, убедитесь что вы корректно написали <meta charset="UTF-8">

Ответить

1111g 1111g 06.11.2014 20:03:36

У меня так же.

Ответить

Eks1g1 Eks1g1 17.09.2013 03:08:11

Михаил не один из выше перечисленных способов не подошёл, Помогите пожалуйста зарегистрировался на hostia и не могу там разобраться с кодировкой, вроде бы всё сделал правильно да и на локальном сервере работает и на других бесплатных хостингах тоже, а вот на hostia ерунда какая-то, и самое главное что кодировка нарушается только для тех страниц которые вывожу через БД.

Ответить

Admin Admin 17.09.2013 19:27:51

В самой базе может стоять другая кодировка.

Ответить

islamov islamov 20.09.2013 16:56:04

Михаил, у меня такая проблема ! Все что выводится из базы, нормально отображается. Но все, остальное идет иероглифами. Кодировка в мата-теге utf-8 в нотпаде тоже менял на utf-8 без бум, все равно не помогает. В чем может быть причина.

Ответить

Admin Admin 20.09.2013 20:07:25

А на сервере какая прописана проверили?

Ответить

skorpionnn skorpionnn 05.10.2013 22:30:56

И кстати у меня почему то документы css не работают.Вообще не могу поменять ни цвет текста ни цвет самого фона

Ответить

Admin Admin 05.10.2013 22:35:18

http://myrusakov.ru/kak-zadat-css-stil.html и используйте Firebug.

Ответить

tolia2012 tolia2012 28.10.2013 01:01:41

привет,почему проблемы с кодировкой на хостинге,а на локальном сервере все нормально?.на сайте стоит кодировка utf8.есть файл htaccess.

Ответить

Admin Admin 28.10.2013 12:17:26

Напишите хостеру, возможно, он поможет. Быть может, он запретил использовать AddDefaultCharset.

Ответить

tolia2012 tolia2012 28.10.2013 15:02:23

прописал эту строчку в конфигурационном файле и все норм.mysql_query ("SET NAMES 'utf8'");

Ответить

Proprietor1 Proprietor1 13.11.2013 01:01:42

Михаил, здравствуйте. У меня была проблема с кодировкой вывода текста из php скрипта. Мне удалось решить проблему лишь путем явного указания внутренней кодировки mb_internal_encoding("UTF-8"); В перечисленных Вами способах, данный не указан. Вопрос: можно ли обойтись без явного указания ? //mb_internal_encoding("UTF-8");

Ответить

Admin Admin 13.11.2013 11:59:50

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

Ответить

Proprietor1 Proprietor1 14.11.2013 19:21:26

Спасибо.

Ответить

Jey-Val-Star Jey-Val-Star 13.12.2014 22:51:35

Я сделал проще - header('Content-Type: text/html; charset=utf-8'); И все без проблем заработало)))

Ответить

kasimovdolomit kasimovdolomit 20.01.2015 16:11:11

Спасибо огромное,Михаил!!! Очень,очень помогли!!!

Ответить

ivank10 ivank10 29.03.2015 13:46:40

У меня возникла проблема с поиском по базе данных. Предполагаю что дело все же в кодировке. На Денвере все работает хорошо (и английские и русские слова ищутся), проблема возникла после загрузки сайта на сервер. Хотя все кодировки вроде верны, но работает только поиск английских слов, по русским словам поиск не работает. Везде выставлял windows-1251 кодировку. В чем может быть дело?

Ответить

Валериянка Валериянка 11.12.2015 13:54:10

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

Ответить

Bagi Bagi 10.04.2016 23:12:56

Спасибо Миша!!! Реально все сработало, уже месяц мучился открывая в браузере свой сайт с абракодаброй, приходилось постоянно вручную в настройках браузера менять на utf-8, а то он автоматов ставил кириллицу. А надо было всего-лишь навсего сразу использовать один из ваших советов!!! Еще раз убедился в том, что с начала надо прочитать теорию, а потом приниматься за практику!!!!!!

Ответить

Helgi Helgi 30.08.2016 12:57:13

http://s020.radikal.ru/i704/1608/56/cf86718944e4.jpg вот такая у меня проблема - подскажете в чем вопрос???

Ответить

Grigorii08 Grigorii08 30.08.2016 14:37:56

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

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.