$_SESSION и кодировка

Статус
В этой теме нельзя размещать новые ответы.

Juri

Мой дом здесь!
Заблокирован
Регистрация
5 Окт 2007
Сообщения
1.064
Реакции
200
  • Автор темы
  • Заблокирован
  • #1
Суть такова, есть сайт полностью в windows-1251 есть mysql база полностью вся в cp1251 у некоторых юзеров кирилические данные при выводе из сессии отображаются не коректно в виде всяких кракозябр. в чем может быть проблема? куда копать? Такое наблюдается только в фф
 
там где у тебя соединение с базой... сразу после кода соединения, пропиши
sql_query("set names 'cp1251'", $dbi);
должно сработать)

dbi на свое замени.
 
  • Автор темы
  • Заблокирован
  • #3
там где у тебя соединение с базой... сразу после кода соединения, пропиши
sql_query("set names 'cp1251'", $dbi);
должно сработать)
dbi на свое замени.

Давно прописано, используется класс из dle
какие еще варианты, уже голову сломал
 
Видимо header-ы где-то не прописаны. В .htaccess кодировка указана?
 
Какое значение у параметра default_charset в php.ini. Может попробовать default_charset = "cp1251" ...
 
  • Автор темы
  • Заблокирован
  • #6
Видимо header-ы где-то не прописаны. В .htaccess кодировка указана?

да

Какое значение у параметра default_charset в php.ini. Может попробовать default_charset = "cp1251" ...

default_charset вообще не указана.. но почему такая проблема возникает только у некоторых
 
может проще iconv() применять для таких случаев, когда все как надо, а почему-то работает ч/з раз.
 
когда вся страница в шифре иногда попадалось такое в ie, браузер пытается автоматически определить кодировку если включено, когда в странице указана одна кодировка а сервер в хедере страницы возвращает свою кодировку по умолчанию установленную то ie включает серверную кодировку. firefox по умолчанию вроде отключено определение, так если на странице кодировка не указана он будет показывать кодировку какую установил пользователь в последний раз. Решалось с
AddDefaultCharset windows-1251
в .htaccess.

просмотр хедеров онлайн

или дополнение к firefox


Если так искажаются только данные из сессии, то возможно они попадают в сесию уже испорченные, например из старых cookie в другой кодировке, из формы со страниц в другой кодировке, с ссылок без urlencode, или какая нибудь функция например htmlentities без указания кодировки перед сохранением в сессию исправляет данные.
 
А в заголовках страниц стоит
<META http-equiv="Content-Type" content="text/html;charset=windows-1251">
?
 
у меня такое было.
лечил так:
mysql_query("set character_set_client ='cp1251'");
mysql_query("set character_set_results ='cp1251'");
mysql_query("set collation_connection ='cp1251_general_ci'");

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