我在需要通过Http Post Body传递的Gson中使用Umlauts(ä,ü,ö)。

不幸的是,如果Umlauts没有以某种方式转换,而我没有将它们转换,我的Web应用程序将返回null。

内容类型为“application / json”

我如何告诉Gson正确编码Umlaut(Umlaut在值中,而不是键中)?

最佳答案

在将umlaut传递到JSON中的Web服务时,我遇到了同样的问题。
Web服务器无法正确解码这些字符。通过为HttpClient配置UTF编码,问题消失了,这是我的工作代码:

HttpParams httpParams = new BasicHttpParams();
HttpProtocolParams.setContentCharset(httpParams, HTTP.UTF_8);
HttpProtocolParams.setHttpElementCharset(httpParams, HTTP.UTF_8);
HttpClient client = new DefaultHttpClient(httpParams);
HttpPost request = new HttpPost(serverURL);
StringEntity str = null;
String jsonString = gson.toJson(yourdata);
str = new StringEntity(jsonString, HTTP.UTF_8);
request.setEntity(str);
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
client.execute(request);

07-27 19:58