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 :: проблема с кодировками и базой

 PHP.SU

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


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

> Описание: русский текст в базу пишется кракозябрами
Arcoslov
Отправлено: 05 Марта, 2015 - 18:52:41
Post Id


Новичок


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


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




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

Помогите, пожалуйста, решить проблему с сайтом. Переношу сайт с хостинга на хостинг. База mysql.
В phpmyadmin вижу:
Server connection collation: utf8_general_ci
Collation базы: utf8_general_ci,; collation всех таблиц utf8_general_ci

Файл базы (.sql) у меня на компе - в формате utf8. Русский текст читабелен. Импортировал как utf8. Вся текущая инфа, которая достаётся из базы, выглядит по-русски.

Однако, вся новая инфа, которая через сайт добавляется в базу, в базе выглядит как г Москва, и в последствии на сайте она выглядит так же.

На данный момент у меня на сайте такая конструкция:

PHP:
скопировать код в буфер обмена
  1. $connection=new mysqli($host, $user, $pass, $db);
  2. if (!$connection->set_charset("utf8")) {
  3.     printf("Ошибка при загрузке набора символов utf8: %s\n", $connection->error);
  4. } else {
  5.     printf("Текущий набор символов: %s\n", $connection->character_set_name());
  6. }

она мне говорит, что "Текущий набор символов: utf8".

В коде сайт ничего не конвертит вроде бы.
От чего ж оно? )

p.s. сам сайт полностью в utf8, в htaccess прописано AddDefaultCharset utf-8, контент страниц сайта, что не из базы, отображается нормально.

p.p.s. декодер лебедева говорит, что это utf8 -> cp1252
Не понял

есть какой-то вариант для начала проверить, в каком виде поступают данные в базу? они такие туда уже постаупают или это база чё-то крутит?

(Отредактировано автором: 05 Марта, 2015 - 18:59:40)

 
 Top
Arcoslov
Отправлено: 08 Марта, 2015 - 12:49:26
Post Id


Новичок


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


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




появилась дополнительная информация.

База уже получает данные в корявом виде.

Как работает код:
первом файле php есть форма.
Во втором - код для обращения и инсерта данных в базу.
Когда в первом файле нажимается кнопка сохранить, она через js методом post передаёт данные во второй файл, чтобы там произошла запись в базу. Если в этом второмфайле сделать print_r($_REQUEST) в самой первой строчке, то видно, что данные уже приходят корявые. Однако, в первом файле alert непосредственно перед отправкой данных эти самые данные выводит нормально.

Почему при передаче данных они корёжатся?
и, кстати, полученные во втором файле данные почему-то нельзяс iconv сконвертить в utf8 обратно, получаются неопознанные закорючки.
 
 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