Имеется БД с параметрами:
| character_set_client | latin1
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | latin1
| character_set_server | latin1
| character_set_system | utf8
| collation_connection | latin1_swedish_ci
| collation_database | latin1_swedish_ci
| collation_server | latin1_swedish_ci
Добавляю в эту БД таблицу с параметром DEFAULT CHARSET=utf8
Далее делаю вставку записей в эту таблицу с кириллическими значениями.
Пробовал перед созданием таблицы, либо вставкой делать:
SET NAMES utf8
SET NAMES utf8 COLLATE utf8_general_ci
SET CHARACTER SET utf8
Все без толку, вместо кириллицы вставляются '?'
Что еще можно сделать, чтобы кириллица вставлялась корректно?
Настройки БД менять не вариант, т.к. пишу плагин для уже существующей системы.
Рассмотрите такого рода вариант.Надеюсь поможет=)
class DB
{
private static $db;
private function __construct(){}
public static function getConnection() {
if (self::$db === null){
self::$db = new mysqli('localhost', 'root','','db_name');
self::$db ->query("SET CHARSET utf8");
}
return self::$db;
}
}
Исследовал вопрос. Установил phpMyAdmin. Даже при вставке русского текста в таблицу через веб-интерфейс (при этом таблица в utf8, бд в latin1) в итоге вместо кириллицы отображаются вопросы.
В общем, выход один - переконвертация кодировки бд в utf8.
Для справки - плагин разрабатывается для FreePBX. БД FreePBX создает автоматически при установке, полагаю.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости