1 pièce(s) jointe(s)
[JSON - AJAX - PHP] Affichage du caractère €
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:
Citation:
tést à /\' " & % € = éàä ., '' â
Via une requête mysql je récupère ce string dans la variable $data['Enf_Nom'] ( tableau ).
Voici un très court extrait de mon code php
Code:
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:
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
Citation:
tést à /\' " & % € = éàä ., '' â
comme j'aurais aimé mais comme suivant:
Pièce jointe 333530
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