У меня есть простой синтаксис SQL для вставки в таблицу. Я использую Postgresql 8.4 и уже установил кодировку базы данных как UTF8 и POSIX для сортировки и типа символов.
Запрос прекрасен, если я запускаю его под pgadmin3, но приношу ошибку, если я выполняю на PHP.
"Internal Server Error: SQLSTATE[22021]:
Character not in repertoire: 7 ERROR:
invalid byte sequence for encoding \"UTF8\": 0xd85b\nHINT:
This error can also happen if the byte sequence does not match the encoding expected by the server,
which is controlled by \"client_encoding\"
Итак, я попытался установить NAMES и client_encoding из PHP (PDO), но все равно имею ту же проблему
$instance->exec("SET client_encoding = 'UTF8';");
$instance->exec("SET NAMES 'UTF8';");
pg_set_client_encoding($link, "UNICODE");
Я буду работать, если я использую собственный драйвер postgresql pg_pconnect
, но в настоящее время я использую PDO в качестве драйвера.
и я уже установил mb_internal_encoding('UTF-8');
Есть ли другой способ исправить эту проблему?
Эта ошибка появляется только в том случае, если я пытаюсь вставить слово без ascii, например, арабское или японское слово