Java:Gson和编码

cdb*_*a89 6 java encoding json gson

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

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

content-type是"application/json"

我如何告诉Gson正确编码Umlauts(变音符号是值,而不是键)?

Wiz*_*che 6

我有同样的问题将umlaut传递给JSON中的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);
Run Code Online (Sandbox Code Playgroud)


Mig*_*ira 2

你可以尝试设置

charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

强制编码。