Comment définir l'encodage en .getJSON jQuery
Dans mon application web, je présenter certains champs du formulaire avec jQuery $.getJSON()
méthode. Je vais avoir quelques problèmes avec l'encodage. Le jeu de caractères de mon application est charset=ISO-8859-1
, mais je pense que ces champs sont soumis à UTF-8
.
Comment je peux définir l'encodage utilisé dans $.getJSON
appels?
- Selon ceci réponse il est illégal pour spécifier le charset pour
application/json
. - ILLÉGAL? j'espère que je n'ai pas arrêté d'essayer...
Vous devez vous connecter pour publier un commentaire.
Je pense que vous aurez probablement à utiliser
$.ajax()
si vous souhaitez modifier l'encodage, voir lacontentType
param ci-dessous (lessuccess
eterror
rappels suppose que vous avez<div id="success"></div>
et<div id="error"></div>
dans le code html):Je fait juste eu à faire à ce sujet il ya une heure, quelle coïncidence!
xhr
son? 😉application/json
.Si vous souhaitez utiliser
$.getJSON()
vous pouvez ajouter ce qui suit avant l'appel :Vous pouvez utiliser le jeu de caractères que vous voulez, au lieu de
utf-8
.Les options sont expliquées ici.
contentType :
Lors de l'envoi des données au serveur, utilisez cecontent-type
. Par défaut estapplication/x-www-form-urlencoded
, qui est très bien pour la plupart des cas.scriptCharset :
Seulement pour les demandes avecjsonp
ouscript
type de données et du type GET. Les Forces de la demande à être interprété comme un certain jeu de caractères. Seulement nécessaire pour le jeu de caractères différences entre la télécommande et le contenu local.Vous avez peut être besoin d'une ou deux ...
application/json
.Vous avez besoin d'analyser le JSON appels à l'aide de Wireshark, de sorte que vous verrez si vous incluez le jeu de caractères dans la formation du JSON page ou non, par exemple:
Pourquoi est-ce? parce que nous ne pouvons pas la mettre sur la page de JSON un but comme ceci:
Dans mon cas, j'utilise le fabricant Connect Me 9210 Digi:
p-> theCgiPtr-> = fDataType eRpDataTypeOther;
strcpy (p-> theCgiPtr-> fOtherMimeType, "text /html;
charset = ISO-8859-1 ");
Il a travaillé pour moi sans avoir à convertir les données transmises par JSON pour l'UTF-8 et ensuite refaire la conversion sur la page ...
Utilisation
encodeURI()
du client en JS et l'utilisationURLDecoder.decode()
serveur Java côté fonctionne.Exemple:
Javascript:
Java:
java.net.URLDecoder.decode(params.user, "UTF-8");
Utiliser cette fonction pour retrouver les caractères utf-8
exemple: