[Résolu] Encodage de caractère dans spip_gis

Bonjour,
Je récupère des infos CSV que je stocke dans spip_gis en php dans mon plugin.

$liId_gis = sql_insertq( 
	'spip_gis', [
		'titre' => $lsAffichageLieu,
		'lat' => $lsLatitude,
		'lon' => $lsLongitude,
		'pays' => $lsPays,
		'region' => $lsRegion,
		'ville' => $lsVilles
		]); 

Mon site est tout en utf8mb3_general_ci, installé en MyISAM, converti en InnoDB.
Ensuite sur un autre création, je vérifie d’abord si le point existe :

$laLieux = sql_allfetsel( 
	'id_gis, titre, lat, lon', 
	'spip_gis', 
	array( "titre = '$lsAffichageLieu'", "lat = '$lsLatitude'", "lon = '$lsLongitude'")); //

Mais quand j’ai des caractères accentués, il ne retrouve pas le point.
Le lieu recherché est « Saint-Jean-d’Angély » (notez le é à la place de ‹ é ›)
Ce que je récupère en base si je ne donne que lat et lon comme critère est aussi « Saint-Jean-d’Angély ».
Ce que je lis par Adminer est « Saint-Jean-d’Angély ».
Mais la requête sql_allfetsel considère que les 2 chaînes sont différentes et ne me renvoie pas le point.
Que faut-il corriger pour que les chaînes de caractères soient considérés égales ?

As-tu vérifié l’encodage utilisé par ton fichier CSV ? Le problème est peut-être à la source…

Bonjour,

Dans le fichier d’origine, si je l’ouvre avec Notepad++, il est écrit « Saint-Jean-d’Ang\u00e9ly », il détecte utf-8.

Bon en fait mauvaise piste, c’est l’apostrophe qui le dérange.

Si je traite la chaîne ainsi (remplacement de l’apostrophe par le caractère U+2019)

$lsAffichageLieu = str_replace( "'", '’', $lsAffichageLieu);  

avant insertion, il le reconnait bien dans la requête sql_allfetsel.

Donc j’ai réécrit

$laLieux = sql_allfetsel( ..., ..., 
	array( "titre = '$lsAffichageLieu'", 

par

$laLieux = sql_allfetsel( 	... , ..., 
	array( 'titre = "'.$lsAffichageLieu.'"', ...//

Résolu.

Y aurait-il une solution plus propre ?
Merci