Je tente de migrer mes sites en SPIP3.1. Dans certains squelettes, je boucle sur une base externe THELIA.
1ère découverte : en bouclant sur une table « image » externe, je récupère un #FICHIER. SPIP ajoute « IMG/ » au résultat. Je suis contraint de remplacer par #FICHIER* pour éviter cette interprétation.
2ème problème : Les chaines extraites des bases externes se voient remplacer leurs caractères accentués par des points d’interrogation. Problème d’encodage. Pourtant, tout est en UTF8, les squelettes, la base, etc. Et il n’y avait pas cette anomalie en SPIP3.0.
De plus, dans le fichier de connection à la base externe, j’ai bien mysql_query(« SET NAMES UTF8 »);
Qu’est-ce qui a changé en 3.1 concernant l’accès aux bases externes ?
Je ne n’avais pas bien recherché avant de poser ma question.
En réalité, il existe un 9ème paramètre dans la fonction spip_connect_db qui permet de spécifier le charset. Et cela fonctionne très bien.
Dommage que cette possibilité ne soit pas encore bien documentée.
Il reste la problèmatique de l’interprétation de #FICHIER qui ajoute /IMG dans le cas d’un fichier image. Facile à corriger mais je me demande si cette interprétation est vraiment volontaire dans le cas de l’accès à une base externe ?
Je ne n'avais pas bien recherché avant de poser ma question.
En réalité, il existe un 9ème paramètre dans la fonction spip_connect_db
qui permet de spécifier le charset. Et cela fonctionne très bien.
Dommage que cette possibilité ne soit pas encore bien documentée.