繁体   English   中英

使用Appengine的UTF-8响应编码

[英]UTF-8 response encoding with appengine

我需要将HTTP响应的字符编码设置为UTF-8。

JsonObject jsonObject;

resp.setContentType("application/json; charset=UTF-8");
//resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.print(jsonObject.toString());

我尝试使用特定的响应方法并在appengine-web.xml上使用系统属性来设置内容类型的编码

<property name="file.encoding" value="UTF-8" />
<property name="DEFAULT_ENCODING" value="UTF-8" />

每个方法都可以在本地正常工作,但是当我将应用程序部署到App Engine时,字符编码会出错,并且浏览器中显示的JSON响应字符串不是UTF-8。 我能做什么?

如果PrintWriter编码错误,您可以尝试将响应写成不是字符串,而是字符数组,如下所示:

out.print(jsonObject.toString().getBytes("UTF-8"));

否则,请尝试另一个库来生成json,例如GSON。

Gson gson = new GsonBuilder().create();
out.print(gson.toJson(Your_Object));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM