Postgresql PHP invalide séquence d'octets pour l'encodage UTF8
J'ai une simple syntaxe SQL pour l'insertion de la table. Je suis de l'utilisation de Postgresql 8.4 et déjà définir l'encodage de la Base de données pour être en UTF8, et POSIX pour le Classement et le type de Caractère.
La requête est bien, si je le lance sous pgadmin3, mais apporter erreur si j'execute en 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\"
J'ai donc essayé de mettre des NOMS et client_encoding à partir de PHP(AOP), mais toujours le même problème
$instance->exec("SET client_encoding = 'UTF8';");
$instance->exec("SET NAMES 'UTF8';");
pg_set_client_encoding($link, "UNICODE");
mon travail si je suis en utilisant le natif postgresql pilote pg_pconnect
mais actuellement, je suis en utilisant PDO en tant que Pilote.
et j'ai également déjà mis en mb_internal_encoding('UTF-8');
Est-il un autre moyen de corriger ce problème ?
Cette erreur ne s'affiche que lorsque j'essaie d'insérer non ascii parole, comme l'arabe ou le mot japonais
source d'informationauteur Ahmad | 2013-03-06
Vous devez vous connecter pour publier un commentaire.
Essayer d'encoder en utf-8 avec utf8_encode().
Répondre sur un vieux poste mais, j'ai juste eu une situation similaire, au cours d'un fichier CSV, j'ai remarqué l'erreur:
invalid byte sequence for encoding "UTF 8": 0x95 in ....
J'ai corrigé l'erreur par juste la conversion de l'encodage à partir de Windows-1252 à l'UTF-8 en PHP à l'aide de:
mb_convert_encoding($fieldValue,'UTF-8','Windows-1252')
Espère que cela aidera quelqu'un.
Je suis va être ne peut pas présenter unicode correcte SQL-query (quercus pour java varier un mauvais travail, de l'unicode et tout comme "SET NAMES 'UTF8';" pas de travail) , et je résoudre ce problème de Base64 convertation: