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 :: Проблема кодировки при роботе с denwer,php,mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: utf-8, windows-1251
exspool
Отправлено: 27 Апреля, 2012 - 15:03:56
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Здравствуйте.

Суть:

1. есть Denwer
2. есть таблица mysql (кодировка UTF-8) в которой содержится данные на русском, польском, чешском языках
3. есть файл get_data.php который получает эти данные с таблицы
4. есть файл index.php который отображает эти данные (строчка <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> присутсвует)
5. с проектом работаю с помощью NetBeans (проект выставлен в кодировку UTF-8)
6. все файлы в кодировке UTF-8

Результат (в браузере в пункте кодировка стоит - UTF-8):

Руская поэзия
Kniha ?ivota
Ksi?ga ?ycia
Sprawdza? testu IQ

Проблемы которые я решал и которые не помогли:

1. header('Content-Type: text/html; charset=utf-8');
2. httpd.conf сменил на AddDefaultCharset UTF-8

Надеюсь на помощь. Спасибо!

(Отредактировано автором: 27 Апреля, 2012 - 15:04:35)

 
 Top
Bio man
Отправлено: 27 Апреля, 2012 - 15:16:31
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




или после подключения к БД
 
 Top
exspool
Отправлено: 27 Апреля, 2012 - 15:28:11
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Bio man пишет:или после подключения к БД


результат поменялся, но проблема осталась:

Kniha Еѕivota
KsiД™ga Ејycia
Sprawdzać testu IQ
 
 Top
Viper
Отправлено: 27 Апреля, 2012 - 15:39:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




денвер выкинте. криворукая сборка для неизвестно кого. возьмите либо нормальную сборку(коих довольно много) либо поставьте все сами и навсегда забудьте про такие проблемы.

PS! ИМХО
PS1! Интересно как долго люди будут наступать на те же самые грабли, при том, что чуть ли не каждый второй пост на любом форуме про проблемы с (дебил)денвером.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
exspool
Отправлено: 27 Апреля, 2012 - 15:55:43
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Viper пишет:
денвер выкинте. криворукая сборка для неизвестно кого. возьмите либо нормальную сборку(коих довольно много)


какую посоветуете?

P.S. все как то пользуются Денвером, и я знаю что это уже очень бородатая тема, но очень интересно как ее просто решить, без всяких там функций, скриптов и т.д. и от даже как посоветовал "Bio Man" выше использовать mysql_set_charset() , я понимаю что она устанавливает кодировку, но зачем? когда и так все по умолчанию в ЮТФ-8.

P.S.S. все в ютф-8 а отображаются кряки, парадокс)
(Добавление)
еще одна проблемка которую заметил:

когда ставлю header('Content-Type: text/html; charset=utf-8'); то русские символы меняются вообще на такое вот чудо �
 
 Top
Bio man
Отправлено: 27 Апреля, 2012 - 16:19:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




exspool пишет:
я понимаю что она устанавливает кодировку, но зачем?
Она говорит базе в какой кодировке придут данные и в какой кодировке их отдавать. Collation это не кодировка самих данных.
 
 Top
exspool
Отправлено: 27 Апреля, 2012 - 17:00:34
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Bio man пишет:
exspool пишет:
я понимаю что она устанавливает кодировку, но зачем?
Она говорит базе в какой кодировке придут данные и в какой кодировке их отдавать. Collation это не кодировка самих данных.


не помогла(((
 
 Top
Bio man
Отправлено: 27 Апреля, 2012 - 17:36:12
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Должно быть так:
0. В HTML файле <meta charset="utf-8" />
1. В БД Collation utf8_general_ci
2. ВСЕ файлы в кодировке UTF-8 без BOM (что бы заголовки корректно передовались)
3. Если используется устаревший mysql драйвер то сразу после подключения к БД прописать mysql_set_charset("utf8") иначе отправить вышеупомянутый запрос SET NAMES "utf8"
 
 Top
Crate
Отправлено: 27 Апреля, 2012 - 17:41:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Bio man
Вопрос в тему: что быстрее и лучше, mysql_set_charset("utf8") или SET NAMES "utf8"?
 
 Top
Bio man
Отправлено: 27 Апреля, 2012 - 17:44:19
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Для mysql драйвера советуется использовать mysql_set_charset() нежели SET NAMES
для других дров я не знаю есть ли там подобные ф-ции
 
 Top
exspool
Отправлено: 28 Апреля, 2012 - 12:59:53
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Bio man пишет:
Должно быть так:
0. В HTML файле <meta charset="utf-8" />
1. В БД Collation utf8_general_ci
2. ВСЕ файлы в кодировке UTF-8 без BOM (что бы заголовки корректно передовались)
3. Если используется устаревший mysql драйвер то сразу после подключения к БД прописать mysql_set_charset("utf8") иначе отправить вышеупомянутый запрос SET NAMES "utf8"


0. есть
1. есть
2. есть
3. есть

результат: крякозябры(((

я вот думаю может это действительно сам денвер некорректно работает с кодировками, или еще что-то в этом духе(
(Добавление)
Все. Разобрался ))) вся проблема была в самом файле php.ini. Почему то строчка default_charset = "UTF-8" была закомментированая. Расскоментировал и добавил mysql_set_charset('utf8');. Все корректно:

Classic Poems
Kniha života
Księga życia
Sprawdzać testu IQ
 
 Top
Мелкий Супермодератор
Отправлено: 28 Апреля, 2012 - 17:38:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Bio man пишет:
3. Если используется устаревший mysql драйвер то сразу после подключения к БД прописать mysql_set_charset("utf8") иначе отправить вышеупомянутый запрос SET NAMES "utf8"

Наоборот, только.
Если используется древний сервер mysql - младше 5.0.7 - то set names, иначе - родные функции mysql_set_charset, mysqli_character_set_name, для PDO только опять же setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB