Jeu de caractères Android par défaut lors de l'envoi d'un message http / put - Problèmes avec des caractères spéciaux

J'ai configuré apache httpClient:

HttpProtocolParams.setContentCharset(httpParameters, "UTF-8");
HttpProtocolParams.setHttpElementCharset(httpParameters, "UTF-8");

J'ai aussi inclure l'en-tête http "Content-Type: application/json; charset=UTF-8" pour tous http post et mettre la demande.

Je suis en train d'envoyer http post/put demandes avec un json corps qui contient des caractères spéciaux (ie. les caractères chinois via Google Pinyin clavier, symboles, etc.) Les personnages apparaissent comme n'importe quoi dans les journaux, mais je pense que c'est parce que DDMS ne supporte pas l'UTF-8, comme décrit dans cette question.

Le problème, c'est quand le serveur reçoit la requête, il n'a parfois pas de voir les personnages (en particulier les caractères Chinois), ou il devient inutile poubelle lorsque nous les récupérer via une requête GET.

J'ai aussi essayé de mettre 250 caractères non-ascii dans un seul domaine, parce que ce domaine particulier, doit être en mesure de prendre jusqu'à 250 caractères. Cependant, il ne parvient pas à valider sur le côté serveur qui prétend que les 250 limite de caractères a été dépassé. 250 caractères ASCII fonctionnent tout aussi bien.

Le serveur mecs prétendent qu'ils ont le soutien de l'UTF-8. Ils ont même essayé de simuler une requête post qui contient des caractères Chinois, et les données ont été reçues par le serveur de l'amende juste. Toutefois, le mec (un Chinois) est à l'aide d'un ordinateur Windows avec le pack de langue Chinoise installé (je pense, car il ne peut saisir les caractères Chinois sur son clavier).

Je suppose que le jeu de caractères utilisé par le client Android et le serveur (fait par des gars Chinois d'ailleurs) ne sont pas alignés. Mais je ne sais pas qui est en faute depuis le serveur mecs prétendent qu'ils ont le soutien de l'UTF-8, et reste notre client est configuré pour prendre en charge UTF-8.

Cela m'a demandé sur quel charset Android utilise par défaut sur l'ensemble de la saisie de texte, et si il peut être changé pour un autre par programmation. J'ai essayé de trouver des ressources sur comment faire cela sur l'entrée des widgets, mais je n'ai pas trouve quelque chose d'utile.

Est-il un moyen de définir le jeu de caractères pour la saisie de tous les widgets sur Android? Ou peut-être que j'ai raté quelque chose dans le reste de configuration du client? Ou peut-être, juste peut-être, le serveur mecs ne sont pas en UTF-8, à leurs serveurs et utilisé Windows les jeux de caractères à la place?

source d'informationauteur avendael