Помогите с ????? в БД и сайте

Тема в разделе "Как сделать...", создана пользователем ольга2013, 4 янв 2015.

  1. ольга2013

    ольга2013 Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    133
    Симпатии:
    13
    На сайте русский отображает нормально, пол сайта работает нормально, с админки в БД пишет на русском и отображает поля на русском (создавая категории), а вот страну и область нехочет писать нормально при создании пишу на русском жму сохранить получаю поле ?????? и в БД ?????? на сайте тоже показывает ??????? при попытке исправить ?????? через БД ошибка
    Затронуто 0 строк.
    Warning: #1366 Incorrect string value: '\xD0\xBF\xD1\x80\xD0\xB8...' for column 'name' at row 1

    Кодировка в БД utf8_general_ci соединение с БД
    $db->connect($db_host, $db_username, $db_password);
    $db->select_db($db_name);
    mysql_query('set character_set_client="utf8"');
    mysql_query('set character_set_results="utf8"');
    mysql_query("set names utf8");
    $db->display_errors = true;
    Подскажите что еще можно сделать и как ее настроить на нормальную работу и как может часть работать а часть нет?
     
  2. XUC

    XUC Ушел в небытие

    Регистр.:
    3 сен 2006
    Сообщения:
    810
    Симпатии:
    505
    сделать бэкап БД ,сохранить на комп и в нотепаде++ сконвертировать в utf8, сохранить и залить по новой
     
  3. Gang

    Gang Создатель

    Регистр.:
    28 янв 2013
    Сообщения:
    21
    Симпатии:
    9
    Если проблемные таблицы были добавлены после создания основной базы, то они могут быть в отличной от utf-8 кодировке.
    Решение - отдельно перекодировать в utf-8 эти таблицы.

    ЗЫ
    Если всю базу сохранять, то переконвертация в ноутпаде не поможет. Часть данных будет в одной кодировке, часть в другой.
    Поможет сделать тоже самое, но отдельно с проблемными таблицами.
     
  4. ольга2013

    ольга2013 Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    133
    Симпатии:
    13
    Таблицы созданы одновременно, все таблицы utf8_general_ci это не одно и тоже с utf-8?
     
    Последнее редактирование: 5 янв 2015
  5. Gang

    Gang Создатель

    Регистр.:
    28 янв 2013
    Сообщения:
    21
    Симпатии:
    9
    Если точно вся база данных в одной кодировке utf8_general_ci (хотя вообще для русского лучше использовать utf8_unicode_ci), то возможно какие-то скрипты (связанные с выбором страны и области) имеют другую кодировку, не utf-8.
    Имеет смысл массово всем файлам сайта (если конечно их вменяемое количество) сменить кодировку на utf-8. К примеру EditPlus может массово менять кодировку всех открытых в нём файлов.
     
    ольга2013 нравится это.
  6. ольга2013

    ольга2013 Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    133
    Симпатии:
    13
    Проблема частично решилась и заключалась в следующем файлы скрипта были win-1251 при перекодировке сохранялись с BOM и это очень мешало нормальной работе скрипта. BOM был убит. Но осталась проблема если я пишу как соединяться с базой
    mysql_query('set character_set_client="utf8"');
    mysql_query('set character_set_results="utf8"');
    mysql_query("set names utf8");
    таблицы utf8_unicode_ci
    даже по одному то не работает, только одни ??????? если все убираю то на сайте все ОК пишет на русском а в БД Ð”Ð½ÐµÐ¿Ñ€Ð¾Ð¿ÐµÑ‚Ñ€Ð¾Ð²ÑÐºÐ°Ñ область
    подскажите что может теперь решение близко а где?
    PS. Это тоже не помогает даже не реагирует mysqli_query($cdb,"SET NAMES utf8");
    PS.2
    вставляю этот код получаю ???????????
    $db->select_db($db_name);
    mysql_query ("set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    mysql_query ("SET NAMES utf8");
    $db->display_errors = true;
     
    Последнее редактирование: 5 янв 2015
  7. Gang

    Gang Создатель

    Регистр.:
    28 янв 2013
    Сообщения:
    21
    Симпатии:
    9
    Похоже, что либо на сайте, либо в БД (я так понимаю "в БД" имеется ввиду в PHPMyAdmin) не совпадает кодировка сайта и базы. С базой определились - она в utf-8, осталось на сайте прописать кодировку, как-то так должно быть: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    Если не помогает - можно попробовать через функцию PHP header:
    header('Content-Type: text/html; charset=utf-8');
    Эту строку непосредственно в сам PHP файл скрипта надо вставить, в самом начале.
     
  8. ольга2013

    ольга2013 Постоялец

    Регистр.:
    10 ноя 2013
    Сообщения:
    133
    Симпатии:
    13
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> уже стоит, header('Content-Type: text/html; charset=utf-8'); не помогло
    в .htaccess AddDefaultCharset utf-8 вписан, в php.ini default_charset = "utf-8" я на сайте вижу нормальный русский а в базу продолжает писать ДнепрÐ
    Все перечисленное выполнялось без
    mysql_query ("set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    mysql_query ("SET NAMES utf8");

    Может поможет отчет фаербаг
    Content-Type text/html; charset=utf-8
    Date Mon, 05 Jan 2015 01:03:46 GMT

    PS- HELP

    Продолжение аномалии
    вот был использован этот код
    $db = new database;

    $db->connect($db_host, $db_username, $db_password);
    $db->select_db($db_name);
    mysql_query('set character_set_client="utf8"');
    mysql_query('set character_set_results="utf8"');
    mysql_query('set collation_connection="utf8_unicode_ci"');
    $db->display_errors = true;

    Частично проблема ушла, регистрация и категории создаются и пишутся в базу на русском и отображает на сайте на русском но в одном месте создание стран проблема осталась при заполнении на русском в базе и на сайте ????????? Подскажите как может в одном месте такое быть? Приложу файлы может поможет в решении файл table_countries.php проблемный, а table_categories.php работает Помогите пожалуйста

    РЕШЕНО
    На фото видео что и где там была другая кодировка отличная от utf8 вот и выпендривалась таблица
    Scr785t.png
     
    Последнее редактирование: 6 янв 2015