Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблемы с кодировками
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Довольно часто на форумах(не только на этом) задают подобный вопрос:
Цитата:
"Я написал скрипт, а вместо русских букв из базы данных вижу 'кракозябры'"
Стоит сразу отметить, что все, в рамках одного проекта, должно быть в одной кодировке и тогда такого вопроса у Вас скорее всего не возникнет.
И так перейдем к самой проблеме.
Сама проблема возникает из-за разности кодировки базы данных и файла скрипта, если у Вас сравнение(кодировка) базы данных ,к примеру, windows-1251 , а фаил скрипта в utf8, то вполне естественно, что кириллических символов, в их нормальном виде, вы не увидите.
Для того чтобы выйти из сложившейся ситуации можно использовать следущие варианты:
0. После подключения к базе данных выполнить запрос:
mysql_set_charset('utf8');//аналогично с предыдущим вариантом, тут нужно указать кодировку файла скрипта
Данные действия нужно выполнить сразу после подключения к бд, при чем не оба, а один из вариантов.
Стоит отметить также, что документация php рекомендует второй.
Надеюсь понятно написал и информация будет полезна.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
Maxi
Отправлено: 07 Мая, 2012 - 03:46:34
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
Помог: 0 раз(а)
Хочу ещё добавить, если у вас заголовок
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> вот такой,
а кодировка самого файла вашего скрипта (index.php к примеру) в ANSI, то стоит преобразовать кодировку файла в utf-8, поможет в этом вам notepad++
Uchenik
Отправлено: 16 Мая, 2012 - 12:52:13
Частый гость
Покинул форум
Сообщений всего: 187
Дата рег-ции: Авг. 2011
Помог: 1 раз(а)
Maxi забыл добавить:
Для того чтобы скрипт уж точно ничего лишнего не выдавал, нужно использовать UFT-8 без BOM в том же notepad++ =)
LIME
Отправлено: 16 Мая, 2012 - 12:58:41
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Maxi пишет:
если у вас заголовок
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> вот такой
но при этом приходит http заголовок с другим чарсетом, то браузер с удовольствием забьет на мета-тег
PVG
Отправлено: 26 Июля, 2012 - 21:48:09
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012
Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012
Помог: 0 раз(а)
Спасибо, учтем)
LIME
Отправлено: 26 Июля, 2012 - 21:55:28
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
что тут учитывать
ошибка в этом наверняка
PVG
Отправлено: 26 Июля, 2012 - 22:28:58
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2012
Помог: 0 раз(а)
Заменил строки, результат такой же.
А какая разница? Это просто запись в скрытую форму, просто так тупо написана. Ошибка ведь mysql'овская. Появилась только после того как кодировку добавил и стал вводить кириллические символы.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.