json avec des caractères spéciaux comme é
Je suis le développement de charge, sélectionnez le script à l'aide de jQuery, PHP et JSON comme réponse.
Tout va bien sauf pour l'utilisation des caractères spéciaux comme ceux des français (é , è , à...)
si je l'ai pré-encoder comme (é , è , à) (j'utilise Ici des espaces entre le commercial et le reste de la parole pour empêcher la connexion automatique de l'encodage dans ma question), il fonctionne mais lors du rendu avec jquery les personnages ne sont pas convertis à ce qu'ils devraient ressembler (é...), au lieu de cela, elles sont affichées comme il est (é)
Si je les écris comme (é) et de ne pas pré-encoder la totalité de la valeur de cette entrée de ce tableau n'est pas montré.
Que dois-je faire ici?
Grâce.
C'est pas jQuery que "entitizes vos trucs". Il n'est pas encore codé.
Hmmm... je me réfère à
.text()
, qui ne convertir certains caractères à leurs équivalents en entité HTML (via createTextNode()
)Non, il n'est pas.
text()
définit la textContent
propriété d'un nœud DOM. Les entités HTML n'existent que dans sérialisé HTML (c'est à dire quand le HTML est représenté sous forme de texte), ils n'existent même pas dans les DOM.OriginalL'auteur medk | 2011-09-02
Vous devez vous connecter pour publier un commentaire.
Tout comme la première réponse
Utilisez-vous une base de données? Si Oui, assurez-vous que la table de base de données est déclarée UFT8
Comment est déclarée la page HTML? UTF-8
EST la chaîne de caractères dans le fichier de script PHP? Si oui, assurez-vous que le fichier est un fichier UTF-8 format
Vous pouvez également utiliser utf8_encode (à envoyer au format HTML) et utf8_decode (à recevoir), mais pas de la bonne façon
OriginalL'auteur YvonBlais
En JSON vous n'avez pas HTML-coder les valeurs. Vous envoyez la lettre (é) et de définir le Type de Contenu correctement:
Déclarer l'encodage de vos données, bien sûr.
Premier arrêt: Arrêter d'essayer avec
é
. Vous n'avez pas affaire avec le HTML ici, donc cela n'a rien à voir avec votre problème tout. Avez-vous seulement essayé d'en-tête non modifiée ou avez-vous utilisé l'encodage réel de vos données?oui j'ai de définir explicitement le codage utf-8 dans firefox pour la page qui affiche les résultats et essayé une réponse qui contient les deux types (normal et codés), la normale ne se montre jamais et la pré-codées montre comme il est, donc, toujours le même problème
Ce que vous définissez le codage dans Firefox n'a pas d'importance. Vous devez vous assurer que le serveur envoie les personnages de la publicité d'encodage: Lorsque l'en-tête dit UTF-8, les données doivent être en UTF-8. Si vos données n'est pas UTF-8 (et je soupçonne que ce n'est pas le cas), alors vous devez modifier l'en-tête en conséquence.
Super réponse, il fixe pour moi! Merci 🙂
OriginalL'auteur Tomalak
Cela a fonctionné pour moi, j'espère qu'il va travailler pour quelqu'un d'autre connaît des problèmes similaires.
La mb_convert_encoding fonction prend une valeur et le convertit (dans ce cas) HTML-ENTITÉS de l'UTF-8.
Voir ici pour moi de détails sur la fonction http://php.net/manual/en/function.mb-convert-encoding.php
l'homme de nice, pour mon code de cette fonction: echo json_encode(mb_convert_encoding($this->jsonRet, "HTML-ENTITÉS", "UTF-8"));
OriginalL'auteur rharvey