Я столкнулся с ошибкой кодирования, но не могу найти слабое звено в моей логике. В частности, при попытке вставить греческую лямбду в мою базу данных после лямбды ячейка остается пустой.
Процесс:
Перед печатью любого html я делаю:
header('Content-Type: text/html; charset=utf-8');
Далее я подключаюсь, используя PDO:
$dsn = 'mysql:host=' . $config['host'] . ';dbname=' . $config['dbname'] . ';charset=utf8';
$options = array(
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try {
$dbh = new PDO($dsn, $config['username'], $config['password'], $options);
$dbh->exec("SET NAMES utf8");
$dbh->exec("SET FOREIGN_KEY_CHECKS = 1");
Когда я делаю
ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ ИЗ my_table
Я вижу, что сортировка - это utf8_general_ci. Когда я делаю:
echo mb_detect_encoding ($ data_to_be_entered);
Я получаю UTF-8
Когда я выводю $ data_to_be_entered в консоль справапрежде чем вставить его в базу данных, я вижу: (? = 23)
Однако в моей базе данных я просто вижу (как запись.
)