7
votes

Comment encoder le texte russe dans la demande postale en utilisant Apache httpclient?

Il y a le code Java suivant: xxx

Comme vous pouvez le voir ci-dessus, j'envoie la demande postale et obtenez la réponse. Mais dans la méthode du registre, j'utilise le nom russe (Cyrillic), et il y a "????? ???" sur mon serveur. Comment puis-je le réparer? Comment puis-je encoder du texte russe?


2 commentaires

Que passez-vous comme type de contenu? Quel brictset?


Quel serveur utilisez-vous?


6 Réponses :


0
votes

Peut-être que vous lisez ou écrivez la réponse incorrecte?

Assurez-vous d'utiliser le même codage dans les deux écrire la demande et la lecture et dans les en-têtes HTTP POST . .

Pour définir le codage pour la lecture de données Utilisez INPUTStreamreader (InputStream, Charset) constructeur.


0 commentaires

11
votes

Vous devez définir votre demande de codage sur UTF-8. xxx pré>

à partir de: http: // hc. apache.org/httpclient-3.x/charcodings.html p>

Un exemple de la manière dont cela est accompli: p> xxx pré>

Consultez votre utilisation d'UTILISATION URLENCODEDEDITÉ CODE>. Vous devez ajouter un codage au constructeur comme suit: P>

new UrlEncodedFormEntity(nameValuePairs,"UTF-8");


1 commentaires

Aideful: Stackoverflow.com/questions/5270591/... . Assurez-vous également que votre lecture UTF-8 est également sur le serveur.



3
votes

Vous devez essayer de coder les paramètres xxx


0 commentaires

0
votes

httpclient.getparams (). SetParameter (httpmethodparams.http_content_charset, "utf-8");


1 commentaires

S'il vous plaît expliquer votre réponse



0
votes

Si vous êtes fatigué de la recherche de combinaisons d'en-têtes / codants corrects, vous pouvez encoder une chaîne au format URI et décoder, cela préservera tous les caractères non ASCII

String cyrillicString = "ыыыыыы";

//encode string into URI format
String transportString = URLEncoder.encode(cyrillicString, "UTF-8");

//transport string somewhere 

//decode back
String decodedString = URLDecoder.decode(transportString, "UTF-8");


0 commentaires

0
votes

Si vous postez comme JSON:

  1. Créer un client LI> ol> xxx pré>
    1. Créez httppost li> ol> xxx pré>
      1. Objet d'écriture sous forme de chaîne (chaîne) li> ol> xxx pré>
        1. Exécuter LI> OL>
          CloseableHttpResponse response = httpClient.execute(post);
          


0 commentaires