J'essaie de récupérer une ligne de la table qui contient la valeur Boris Borenović
. Au lieu de cela, Boris Borenovi?
est renvoyé.Les données MySQL contiennent des caractères spéciaux comme š et ć, mais ils sont affichés sous la forme '?' sur la page Web. Pourquoi?
Ma base de données et ma table MySQL ont tous deux un ensemble de classement utf8_unicode_ci
.
Ma page PHP, qui affiche les données de la table, contient l'en-tête suivant: <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
. J'ai aussi essayé avec charset=utf-8
, mais ça ne marche toujours pas.
La commande Sql que j'utilise pour interroger les données de la table est SELECT * FROM contact
, donc rien de spécial là-bas, juste ennuyeux requête simple. J'ai essayé avec SELECT * FROM contact COLLATE Latin1_General_CI
mais cette requête ne peut pas être exécutée.
Comment puis-je le faire fonctionner? Merci.
Avez-vous changé jamais le charset des données déjà insérées? Vos champs dans la table sont également 'utf8'? Ce n'est pas si intelligent de sauvegarder des données dans la base de données comme UTF8 mais de travailler avec le jeu de caractères ISO-8859-1 sur la page elle-même. Essayez de mettre votre texte dans 'htmlentities()' et publiez les résultats ici! – thedom
vous devrez combiner les réponses @costis et @Ioannis Karadimas pour que cela fonctionne. UTF-8 est le chemin à parcourir pour toutes vos données (utf8 db, utf8 meta charset, connexion utf8 mysql) –
mon collation de base de données et de connexion ainsi que l'encodage de la page sont tous mis à utf8. Je vois toujours les points d'interrogation stupides et ça me rend un peu frustré. – Boris