Les personnages avec jquery json
Question
J'utilise jquery $ .getJSON pour récupérer la liste des villes.
Tout fonctionne très bien, mais je suis de l'Estonie et nous utilisons des personnages comme ö, ü. ä, ö.
Quand je passe des lettres comme celle-ci callback fonction, je continue à obtenir des chaînes vides. J'ai essayé de chaînes encode base64 (côté serveur) -decode (jquery plugin base64) (je pensais que ce serait une bonne idée aussi longtemps que je peux compresser les pages avec php, donc je n'ai pas à vous soucier de la bande passante), mais de cette façon je me retrouve avec des symboles chinois aléatoires.
Quelle serait la meilleure solution pour ce problème.
Merci.
La solution
Vous devez utf8_encode()
vos données de sortie. Il n'y a pas besoin de définir l'encodage du côté client en UTF-8 comme il est déjà par défaut.
<?php
if( isset( $_GET['json'] ) ) {
die( json_encode( array( 'text' => utf8_encode( 'õ, ü. ä, ö' ) ) ) );
}
include_jquery(); # this outputs jquery include
>?
<script>
$.getJSON( 'this_file.php', { 'json': 1 }, function( data ) {
console.log( 'data', data );
});
</script>
Autres conseils
Vous devez vous assurer que vous gardez un codage de caractères cohérent. Les caractères estoniens que vous voulez sont utf-8, donc vous devez utiliser $.ajax
et définir l'encodage char explicitement (via contentType).
Vous pouvez prendre le résultat ajax et le traiter.
Vous pouvez également utiliser ajaxSetup avant d'appeler getJSON pour définir le type de contenu.
http://api.jquery.com/jQuery.ajaxSetup/
Cela vous permettra d'utiliser getJSON
En outre, voici un pertinent poste afin du même sujet: Comment ensemble dans le codage .getJSON JQuery
Utilisation en vous UTF-8 pages php et que l'encodage de sortie
Cela ressemble à un codage / problème de charset: êtes-vous sûr que vous utilisez:
- Le même charset partout dans votre application?
-
base de données
- fichiers source
- En-têtes HTTP envoyés au navigateur
- Un jeu de caractères qui prend en charge ces caractères?
- i.e.. : Utilisez UTF-8 vous
- Quel est le jeu de caractères Unicode qui est généralement utilisé pour l'application Web et prend en charge pratiquement tous les caractères, on peut penser à