Comment changer le codage de caractères d'une connexion PDO / SQLite en PHP?

StackOverflow https://stackoverflow.com/questions/263056

  •  06-07-2019
  •  | 
  •  

Question

J'ai un petit problème avec une application php-gtk qui continue de tourner dans des chaînes non-utf8. J'avais constaté que le problème venait de la connexion à la base de données, même lorsque la base de données était supposée être en UTF-8.

J'ai essayé avec "SET CHARACTER SET utf8" (méthode MySQL) et "SET NAMES UTF8". et rien ne se passe (il n'y a aucune information à propos de ces commandes dans le langage de requête compris par SQLite " page non plus, donc je ne suis pas surpris de cela).

PD: Peut-être que la connexion est déjà en UTF-8 et que les données ne le sont pas, mais s’il existe un moyen de changer la connexion encodant cette question serait toujours utile.

Était-ce utile?

La solution

Autant que je sache, SQLite ne dispose que d'un paramètre pour le jeu de caractères , qui est à un niveau par base de données. Vous ne pouvez pas modifier le codage sur la connexion.

L’API C dispose des deux manières différentes d’ouvrir une connexion, en tant que UTF- 8 ou UTF-16. Je m'attendrais à ce que le module SQLite de PHP (et donc PDO) utilise simplement la version UTF-8. Si cela est correct, une connexion SQLite devrait toujours être UTF-8. Cela signifie que vous devez manuellement encoder / décoder les chaînes avec utf8_encode . / utf8_decode .

Voir aussi: http://www.alberton.info/dbms_charset_settings_explained.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top