UTF-8响应编码与appengine

时间:2016-10-17 07:44:33

标签: java google-app-engine encoding utf-8

我需要将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。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果编码错误在PrintWriter中,您可以尝试写入响应而不是字符串,而是写入字符数组,如:

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

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

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