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

ольга2013

Постоялец
Регистрация
10 Ноя 2013
Сообщения
134
Реакции
15
На сайте русский отображает нормально, пол сайта работает нормально, с админки в БД пишет на русском и отображает поля на русском (создавая категории), а вот страну и область нехочет писать нормально при создании пишу на русском жму сохранить получаю поле ?????? и в БД ?????? на сайте тоже показывает ??????? при попытке исправить ?????? через БД ошибка
Затронуто 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;
Подскажите что еще можно сделать и как ее настроить на нормальную работу и как может часть работать а часть нет?
 
сделать бэкап БД ,сохранить на комп и в нотепаде++ сконвертировать в utf8, сохранить и залить по новой
 
Если проблемные таблицы были добавлены после создания основной базы, то они могут быть в отличной от utf-8 кодировке.
Решение - отдельно перекодировать в utf-8 эти таблицы.

ЗЫ
сделать бэкап БД ,сохранить на комп и в нотепаде++ сконвертировать в utf8, сохранить и залить по новой
Если всю базу сохранять, то переконвертация в ноутпаде не поможет. Часть данных будет в одной кодировке, часть в другой.
Поможет сделать тоже самое, но отдельно с проблемными таблицами.
 
Если проблемные таблицы были добавлены после создания основной базы, то они могут быть в отличной от utf-8 кодировке.
Решение - отдельно перекодировать в utf-8 эти таблицы.

ЗЫ

Если всю базу сохранять, то переконвертация в ноутпаде не поможет. Часть данных будет в одной кодировке, часть в другой.
Поможет сделать тоже самое, но отдельно с проблемными таблицами.
Таблицы созданы одновременно, все таблицы utf8_general_ci это не одно и тоже с utf-8?
 
Последнее редактирование:
Если точно вся база данных в одной кодировке utf8_general_ci (хотя вообще для русского лучше использовать utf8_unicode_ci), то возможно какие-то скрипты (связанные с выбором страны и области) имеют другую кодировку, не utf-8.
Имеет смысл массово всем файлам сайта (если конечно их вменяемое количество) сменить кодировку на utf-8. К примеру EditPlus может массово менять кодировку всех открытых в нём файлов.
 
Проблема частично решилась и заключалась в следующем файлы скрипта были 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;
 
Последнее редактирование:
Похоже, что либо на сайте, либо в БД (я так понимаю "в БД" имеется ввиду в 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 файл скрипта надо вставить, в самом начале.
 
Похоже, что либо на сайте, либо в БД (я так понимаю "в БД" имеется ввиду в 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 файл скрипта надо вставить, в самом начале.
<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
 
Последнее редактирование:
Назад
Сверху