L'envoi de valeurs UTF-8 dans les en-têtes HTTP aboutit à Mojibake
je veux envoyer les données en arabe à partir de servlet utilisant HTTPServletResponse
client
je suis en train d'essayer cette
response.setCharacterEncoding("UTF-8");
response.setHeader("Info", arabicWord);
et je reçois la parole comme ce
String arabicWord = response.getHeader("Info");
des clients(réception) a également essayé cette
byte[]d = response.getHeader("Info").getBytes("UTF-8");
arabicWord = new String(d);
mais semble comme il n'est pas unicode parce que je reçois des étranges mots anglais,de sorte s'il vous plaît comment puis-je envoyer et recevoir des arabe utf8 mots?
source d'informationauteur Totti
Vous devez vous connecter pour publier un commentaire.
En-têtes HTTP ne supporte pas l'UTF-8. Ils officiellement en charge de l'ISO-8859-1. Voir aussi La RFC 2616 section 2:
Votre meilleur pari est d'encoder et de décoder.
et
URL de l'encodage de les transformer en
%nn
format qui est parfaitement valide ISO-8859-1. Notez que les données envoyées dans les en-têtes peuvent avoir des limitations de taille. Plutôt de l'envoyer dans le corps de la réponse au lieu de cela, en texte brut, JSON, CSV ou XML format. En utilisant des en-têtes HTTP de cette façon est à savoir une conception de l'odorat.Je ne sais pas où
word
variable est à venir, mais essayez ceci:Mise à JOUR: il Semble bien que le problème est codé en UTF-8 données en HTTP les en-têtes devoir: Les en-têtes HTTP de codage/décodage en Java pour une discussion détaillée.