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
Форумы портала PHP.SU :: Версия для печати :: Проблема с кодировкой
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Проблема с кодировкой

Страниц (1): [1]
 

1. Slavenin - 29 Ноября, 2010 - 12:14:04 - перейти к сообщению
Всем доброго времени суток.
Проблема: кракозябры или знакои вопросов на странице

Как пробовал решать:
1. Установил у всех полей таблиц кодировку utf8_general_ci
2. Установил у всех таблиц параметр collation(сравение) в кодировку utf8_general_ci
3. В заголовках всех страниц передается
PHP:
скопировать код в буфер обмена
  1.  header('Content-Type: text/html; charset=utf-8');

4. В заголовке страницы вывода прописано
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv=\"content-type\" content=\"text/html; utf-8\">

5. При соединении с БД вызывается функция

6. В файле .htaccess прописана дирректива AddDefaultCharset utf-8

и все-равно на странице вывода кракозябры. Что еще сделать я не понимаю. Может есть еще какие-то варианты?
PS пробовал перекодировать все поля и таблицы в cp1251_general_ci и во всех заголовках прописать эту кодировку, результат не поменялся Огорчение
2. DeepVarvar - 29 Ноября, 2010 - 12:27:43 - перейти к сообщению
1. Сами файлы скриптов в какой кодировке?
2. В базе ENGINE = MYISAM ???
3. Slavenin - 29 Ноября, 2010 - 12:44:03 - перейти к сообщению
Цитата:
1. Сами файлы скриптов в какой кодировке?


utf-8
DeepVarvar пишет:
2. В базе ENGINE = MYISAM ???


да, именно так
4. vlom - 29 Ноября, 2010 - 12:47:24 - перейти к сообщению
Есть ещё вариант, бала подобная проблема.
Попробуйте открыть ваши php скрипты notepad++ и там выполните команду
Меню->Кодировки->Преобразовать в UTF-8 без BOM


Ещё вопрос к вам, какая версия MySQL? так как данная функция (mysql_set_charset('utf-8', $conn);) работает с MySQL 5.0.7 или выше,
если же у вас версия ниже указанной то попробуйте использовать
5. DeepVarvar - 29 Ноября, 2010 - 12:50:59 - перейти к сообщению
vlom пишет:
mysql_query('SET NAMES utf8')
+1!!! Я вот не заострил внимание на этом, хотя вариант Slavenin и показался странным.
6. Phantik - 29 Ноября, 2010 - 13:15:48 - перейти к сообщению
Есть еще такой вариант. Сталкивался с ним лично на хостинге Мажордомо (может быть такая фиговина есть и на каких-то других хостингах). У них зачем-то(до сих пор не понял зачем) в панели управления, есть раздел, который привязывает к каждому домену свою кодировку.

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

Т.е. например если все сделано правильно, страницы сохранены в utf, utf - заголовки посылаютс браузеру, при работе с БД кодировка задается правильно. Но при этом в панели управления хостингом указана кодировка windows-1251 то на выходе будут "иероглифы"
7. Slavenin - 29 Ноября, 2010 - 15:03:53 - перейти к сообщению
вот блин!!! послушался совета отсюда: http://www.phpfaq[dot]ru/charset поэтому и использовал mysql_set_charset('utf-8', $conn); заменил на mysql_query('SET NAMES utf8') и все заработало... всем спасибо! жаль нету кнопки сказать спасибо

 

Powered by ExBB FM 1.0 RC1