Envoyer UTF-8 caractères via HttpURLConnection défaut
J'ai passé la moitié de dimanche à cela j'ai besoin d'aide:
Je veux envoyer une Chaîne de caractères, y compris les caractères spéciaux codé en UTF-8 d'un serveur à l'aide de Java HttpURLConnection. L'encodage correct de la station à l'échec.
Exemple:
strToSend: ä ù € strUrlEncoded: %C3%A4+%C3%B9+%E2%82%AC strReceived:ä Ã1 â
Mon code:
urlConnection = (HttpURLConnection) new URL("http://localhost:8080/NetworkingServer/ServerServlet").openConnection();
urlConnection.setUseCaches(false);
urlConnection.setDoOutput(true); //Triggers POST.
urlConnection.setRequestProperty("accept-charset", "UTF-8");
urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");
String strToSend = "ä ù €";
System.out.println("strToSend: " + strToSend);
String strUrlEncoded = URLEncoder.encode(strToSend, "UTF-8");
System.out.println("strUrlEncoded: " + strUrlEncoded);
OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8");
writer.write(String.format("content=%s", strUrlEncoded));
writer.close();
Des idées?
peut-être setDoOutput(true) après le réglage de l'en-tête accept-charset et de propriétés type de contenu?
non, n'ont pas d'aide. Merci pour l'idée!
Votre
Ça y est! Merci 🙂
non, n'ont pas d'aide. Merci pour l'idée!
Votre
Content-Type
l'en-tête doit être application/x-www-form-urlencoded; charset=utf-8
. Vous devez également vous assurer que votre serveur prête attention à ce que et le lit en UTF-8. Vous pouvez poster votre code serveur?Ça y est! Merci 🙂
OriginalL'auteur Martin Ho | 2013-04-07
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour définir l'encodage de votre
Content-Type
en-tête."
application/x-www-form-urlencoded; charset=utf-8
" . Actuellement vous suffit de définir laaccept-charset
- ceci indique que le serveur doit envoyer.OriginalL'auteur Boris the Spider