Bonjour,
je viens de coder un petit flash bien sympa qui communique avec une base de donnée MySQL à travers des fichiers PHP. Bref je l'ai codé en local, tous ce passait bien, j'ai rencontré les problèmes de codage utf8 etc.. habituel puis j'ai mis l'ensemble sur un site free.
Flash communique en utf8 et la base de données enregistre en utf8 également.
Le problème que j'ai maintenant c'est que les données venant de flash codé en utf8 ne sont convertit tel qu'elle le devrait alors c'était le cas avant.
Exemple :
je reçois "L'épée" dans une variable $_GET de mon fichier PHP (pour l'exemple sinon c'est $_POST depuis le flash). J'utilise ensuite cette variable et l'intègre à une requête SQL :
$requete = sprintf("SELECT Code_arme FROM armes WHERE Nom_arme='%s';",
mysql_real_escape_string(utf8_decode($_GET['nom_arme'])));
Bon et là au lieu d'obtenir une requête bien jolie j'obtiens (avec un echo) :
SELECT Code_arme FROM armes WHERE Nom_arme='L\\\'?e';
Pour essayer de trouver d'où viens mon problème j'ai fait divers echo de ma variable :
echo utf8_decode($_GET['nom_arme']);
-> L\'?e
echo utf8_encode($_GET['nom_arme']);
-> L\'épée
echo $_GET['nom_arme'];
-> L\'épée
Ce qui m'étonne le plus c'est que jamais je ne retrouve L\\\'?e avec les trois \ qui me paraissent très bizarre.
Voila sinon j'ai d'autre fichier PHP me permettant d'aller chercher des information dans ma base sans paramètres $_POST et qui eux me renvoie de bonne informations non déformé dans flash.
Le problème est spécifique aux chaîne de caractère avec des apostrophe en particulier.
Merci d'avance pour toute les lumière que vous pourrez m'apporter !
