1 (изменено: byhh, 2011-09-26 13:21:18)

Тема: Проблема с кодировкой

Добрый день!
Некорректно отображается кириллица из бд. Вот уже пару дней парюсь с кодировкой...

character_set_client     latin1
character_set_connection     latin1
character_set_database     latin1
character_set_filesystem     binary
character_set_results     latin1
character_set_server     latin1
character_set_system     utf8

Дамп базы:

DROP TABLE IF EXISTS `settings`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `settings` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `page` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `meta_d` varchar(255) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `settings`
--
LOCK TABLES `settings` WRITE;
/*!40000 ALTER TABLE `settings` DISABLE KEYS */;
INSERT INTO `settings` VALUES (1,'index','Home','HOME','home','<p>ывофоывофоы фывофыово офыовуцкеенк</p>');
/*!40000 ALTER TABLE `settings` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

В корне сайта прописана кодировка charset=utf-8.

2

Re: Проблема с кодировкой

В скрипте работающем с базой данных, сразу после функции mysql_connect пропишите строку:

mysql_query('SET NAMES utf8');

Пользователь, которым идет подключение к БД не должен иметь привилегий из раздела "Администрирование".

3 (изменено: byhh, 2011-09-26 13:32:12)

Re: Проблема с кодировкой

Создал нового пользователя, при этом не трогал раздела "Администрирование".

mysql_query('SET NAMES utf8');

Перенёс на 2 строчку, после коннекта с бд, но, увы, безрезультатно

4

Re: Проблема с кодировкой

Если в корне сайта прописана эта строка:

PHP_VALUE default_charset utf-8

...то больше ничего не должно мешать.

Если есть доступ к my.ini/my.cnf, то проверьте, чтобы не было строки:
--skip-character-set-client-handshake

5

Re: Проблема с кодировкой

Огромное спасибо!
Прописал в .htaccess:

# unicode support
AddDefaultCharset utf-8
<IfModule mod_charset.c>
   CharsetDIsable on
   CharsetRecodeMultipartForms Off
</IfModule>
 
php_value       mbstring.func_overload  7
php_value       default_charset         UTF-8
php_value       mbstring.language       Russian
 
php_value       mbstring.internal_encoding      UTF-8
php_flag        mbstring.encoding_translation   on
php_value       mbstring.http_input     'UTF-8,KOI8-R,CP1251'
php_value       mbstring.http_output    UTF-8
php_value       mbstring.detect_order   'UTF-8,KOI8-R,CP1251'
# end

И весь текст, который выбирался из бд принял нормальный облик  lol
Но теперь появился новый вопрос. Весь текст, хоронящийся в блоке стал таким ��������
Что с этим делать?

6

Re: Проблема с кодировкой

byhh сказал:

Весь текст, хоронящийся в блоке стал таким ��������

Думаю причина в неверной кодировке файла, которая должна быть UTF8. В редакторе Notepad++, в статусной строке можно увидеть кодировку, которая будет ANSI, либо UTF8.

Также проверьте метатег кодировки заданный в HTML заголовке страницы.

7

Re: Проблема с кодировкой

Большое человеческое спасибо!  wink