Bonjour,
Je fait quelques tests d'un nouveau programme en cours de développement pour transmettre des caractères spéciaux travaillent avec php, javascript (ajax) html et mysql.
Remarque: je n'utilise pas jquery!
Voici une chaine test avec des caractères (voire des caractères "spéciaux") se trouvent dans un champ d'une de mes tables mysql:
Via une requête mysql je récupère ce string dans la variable $data['Enf_Nom'] ( tableau ).tést à /\' " & % € = éàä ., '' â
Voici un très court extrait de mon code php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $myObj = new \stdClass(); $myObj->EnfNom = base64_encode($data['Enf_Nom']); $myJSON = json_encode($myObj); echo $myJSON; exit(0);
pour l'encodage j'utilise en php la fonction "base64_encode"
et pour le décodage en ajax( javascript) j'utilisé la fonction "atob"
Les informations sont envoie avec l'instruction echo $myJSON; vers un deuxième fichier (en réponse d'une requête ajax) et suit l'affichage du résultat en html
Voici un très court extrait de mon fichier Ajax:
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var json = JSON.parse(http.responseText); document.getElementById("Nom").value = atob(json["EnfNom"]) ;
Le résultat est affiche en html dans un champ "Nom" (c'est un champ input avec id="Nom")
L'affichage n'est pas
comme j'aurais aimé mais comme suivant:tést à /\' " & % € = éàä ., '' â
toutes les caractères sont bien affiché à part le signe €!
Pour information : Ma table de la base de données est encode utf8_general_ci
et mais deux fichiers php sont encodé en en UTF8(sans BOM)
Quelqu'un aura une idée pourquoi le signé € n'est pas affiché correctement, puis comment faire pour avoir un affichage correct?
Merci d'avance pour votre aide
Partager