Как изменить кодировку символов PDO / SQLite-соединения в PHP?

У меня возникла небольшая проблема с приложением php-gtk, которое продолжает работать в не-utf8-строках, я обнаружил, что проблема связана с базой данных, даже если база данных должна находиться в UTF-8.

Я пробовал использовать «SET CHARACTER SET utf8» (путь MySQL) и «SET NAMES UTF8», и ничего не происходит (информация о каких-либо из этих команд отсутствует на странице « Язык запросов через SQLite », поэтому Я не удивлен этим).

PD: Возможно, соединение уже находится в UTF-8, а данных нет, но если есть способ изменить кодировку соединения, этот вопрос по-прежнему будет полезен.

Насколько я могу судить, SQLite имеет только одну настройку для кодировки , которая находится на уровне каждой базы данных. Вы не можете изменить кодировку в соединении.

API C API имеет два разных способа открытия соединения: UTF-8 или UTF-16. Я бы ожидал, что PHP-модуль SQLite (и, следовательно, PDO) просто использует версию UTF-8. Если это правильно, я бы ожидал, что соединение SQLite всегда будет UTF-8. Это означает, что вы должны вручную кодировать / декодировать строки с помощью utf8_encode / utf8_decode .

Также см .: http://www.alberton.info/dbms_charset_settings_explained.html