Il y a le code Java suivant: 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? p> p>
6 Réponses :
Peut-être que vous lisez ou écrivez la réponse incorrecte? P>
Assurez-vous d'utiliser le même codage dans les deux Pour définir le codage pour la lecture de données Utilisez INPUTStreamreader (InputStream, Charset) constructeur. P>
Vous devez définir votre demande de codage sur UTF-8. à partir de: http: // hc. apache.org/httpclient-3.x/charcodings.html p> Un exemple de la manière dont cela est accompli: p> Consultez votre utilisation d'UTILISATION URLENCODEDEDITÉ CODE>.
Vous devez ajouter un codage au constructeur comme suit: P>
new UrlEncodedFormEntity(nameValuePairs,"UTF-8");
Aideful: Stackoverflow.com/questions/5270591/... . Assurez-vous également que votre lecture UTF-8 est également sur le serveur.
Vous devez essayer de coder les paramètres
httpclient.getparams (). SetParameter (httpmethodparams.http_content_charset, "utf-8"); p>
S'il vous plaît expliquer votre réponse
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");
Si vous postez comme JSON:
CloseableHttpResponse response = httpClient.execute(post);
Que passez-vous comme type de contenu? Quel brictset?
Quel serveur utilisez-vous?