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 :: кодировка mysql

 PHP.SU

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


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

> Без описания
konoval-konoval
Отправлено: 19 Декабря, 2014 - 16:41:11
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Нояб. 2014  


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




на денвере наполнял базу, получилась довольно внушительная, на денвере на сайте все русские буквы отображаются. а когда залил на хостинг, оказалось, что русские буквы не отображаются.

в чем может быть дело?
и саму базу и на денвере и на хостинге, и таблицы создавал в utf8, и заголовок header("Content-Type: text/html; charset=utf-8"); на сайте прописан.
в самих таблицах русские буквы есть и на денвере и на хостинге, и никаких вопросиков или иных символов

базу в mysql заливал через putty.

буду признателен за помощь.
 
 Top
caballero
Отправлено: 19 Декабря, 2014 - 17:02:26
Post Id


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


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


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




SET NAMES 'utf8'


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
skiphog
Отправлено: 19 Декабря, 2014 - 21:22:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




В какой кодировке база данных хранит данные, абсолютно не имеет никакого значения. Хоть в "китайских иероглифах" храните. т.е. без разницы, что там cp1251_general_ci, что utf-8_general_ci.
Значение имеет только то, какую кодировку вы используете при подключении к базе.
--
Если вы хотите получить данные в кодировке utf-8, то после соединения с БД, установите кодировку соединения с помощью функций:
driver::mysql
PHP:
скопировать код в буфер обмена
  1. $db = mysql_connect ('server','username','password');
  2. mysql_select_db ('nameBase',$db);
  3. mysql_set_charset('utf-8',$db);

driver::mysqli
PHP:
скопировать код в буфер обмена
  1. $mysqli = mysqli_connect("server","username","password","nameBase");
  2.         mysqli_set_charset($mysqli,'utf-8');

driver::PDO
PHP:
скопировать код в буфер обмена
  1. new PDO('mysql:host=server;dbname=nameBase;charset=utf-8','username','password');

--
Указывать кодировку с помощью mysql/i_query('SET NAMES 'utf8'');
как сказано постом выше caballero, не рекомендуется
об этом написано в документации php.net, можете почитать, там все расписано про кодировки и как нужно их указывать при соединении..
--
Идем дальше...
Если используете web-server Apache, можете добаить в файлик .htaccess директивы
PHP:
скопировать код в буфер обмена
  1. DefaultLanguage ru
  2. AddDefaultCharset utf-8
  3. php_value default_charset "utf-8"

и можете смело выкинуть из всех фалов header("Content-Type: text/html; charset=utf-8");
Заголовки всегда будут отдавать charset=utf-8
--
Перекoдируйте все ваши файлы в utf-8!!!
--
В HTML, в тег <html>, добавьте атрибут lang

В хеад добавьте

--
После всех проведенных операций, Ваш проект должен корректно отображаться во всех браузерах в кодировке utf-8 на русском языке.
 
My status
 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