Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 13:09   #1
As_Pushkin
 
Регистрация: 27.05.2010
Сообщений: 8
По умолчанию Беда с кодировкой

Ситуация такая: index.html в кодировке windows-1251:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Скрипт php тоже:
header('Content-Type: text/plain; charset=windows-1251')
HTML передает в PHP параметром строку. ПХП при этом видит кракозябры. Дальше он на основании этой строки делает выборку из БД, но до этого дело не доходит - он еще до формирования запроса к БД уже видит кракозябры. Пробовал все перевести на UTF-8, результат тот же.
Кто-нибудь встречался с такой проблемой?
As_Pushkin вне форума Ответить с цитированием
Старый 17.06.2010, 13:59   #2
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

какой сборкой серверов пользуетесь? (Денвер, XAMPP )
возможно там по умолчанию прописана своя кодировка в файле php.ini
ещё можете попробовать принудительно устанавливать кодировку при соединении с БД
mysql_query("SET names UTF8");
Только это надо прописать сразу после строк соединения
Код:
$db = mysql_connect($db_host,$db_user,$db_pass) 
or die('Unable to establish a DB connection');

mysql_select_db($db_database,$db);
mysql_query("SET names UTF8");
MrJenika вне форума Ответить с цитированием
Старый 17.06.2010, 14:26   #3
As_Pushkin
 
Регистрация: 27.05.2010
Сообщений: 8
По умолчанию

Денвер. В PHP.ini там вообще ничего не прописано про кодировку. А база данных не при делах. Я ж говорю, сам скрипт получает параметр уже не в той кодировке.
Если в скрипте прописать sql-запрос явно, то все нормально, выборка из базы работатет, а если передавать параметром из html - косяк.
As_Pushkin вне форума Ответить с цитированием
Старый 17.06.2010, 14:35   #4
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

а может вы в редакторе изначально сохраняете не в той кодировке?
например сайт в 1251 а сам файл сохраняете как utf8.
У меня таких проблем вообще не было.
MrJenika вне форума Ответить с цитированием
Старый 17.06.2010, 15:33   #5
As_Pushkin
 
Регистрация: 27.05.2010
Сообщений: 8
По умолчанию

Да не, не то. Проверял.
As_Pushkin вне форума Ответить с цитированием
Старый 17.06.2010, 15:33   #6
As_Pushkin
 
Регистрация: 27.05.2010
Сообщений: 8
По умолчанию

гдеб ещё поковырять. Уже все облазил.
As_Pushkin вне форума Ответить с цитированием
Старый 23.06.2010, 18:42   #7
k0nami
Пользователь
 
Регистрация: 05.08.2008
Сообщений: 10
По умолчанию

Цитата:
Сообщение от As_Pushkin Посмотреть сообщение
В PHP.ini там вообще ничего не прописано про кодировку.
А как же
default_charset = " "
?
k0nami вне форума Ответить с цитированием
Старый 23.06.2010, 20:46   #8
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

попробуй сразу после приема данных конвертить их:
Код:
$result=iconv('Windows-1251', 'utf-8', $result);
потом сравнение с БД уже делать...

и еще, данные из БД когда вытаскиваешь, mysql_query выставь:
Код:
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
mysql_query("SET NAMES utf8", $link);
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
еще у меня была трабла, долго не мог догнать, когда я создавал файл в кодировке utf-8, редактировал, а потом оказывалось что он сохранен в cp1251. Оказалось что блокнот принудительно сохранял именно в 1251.
Все генитальное просто.

Последний раз редактировалось kirosin; 23.06.2010 в 20:50.
kirosin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Беда с координатами PRAmus Мультимедиа в Delphi 35 04.09.2010 22:44
беда Морячок Паскаль, Turbo Pascal, PascalABC.NET 3 05.06.2010 15:41
беда на форме lamerk Microsoft Office Access 2 29.11.2009 18:28