GAE数据存储编码问题

时间:2013-10-28 13:01:33

标签: java google-app-engine encoding google-cloud-datastore parse-platform

在GAE中,我保存了一些实体,而不是在servlet请求中,我将带有保存数据的请求发送到Parse,并将数据的推送通知发送给整个相关客户端。 我遇到的问题是GAE使用错误的编码将数据发送到Parse。我在发送解析之前添加了编码。

    HttpURLConnection connection = null;
    URL urlObject = new URL(PUSH_URL);
    connection = (HttpURLConnection) urlObject.openConnection();
    connection.setRequestProperty("X-Parse-Application-Id", APPLICATION_ID);
    connection.setRequestProperty("X-Parse-REST-API-Key", REST_API_KEY);
    connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
    connection.setRequestProperty("accept-charset", "utf-8");
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");

    connection.getOutputStream().write(payload.getBytes());

P.S。 在使用本地GAE实例时我也遇到了这个问题,但是当我更改Eclipse的IDE编码时,它已得到修复。

1 个答案:

答案 0 :(得分:4)

GAE上的默认系统(JVM)编码是US-ASCII。由于string.getBytes()使用系统编码对字符串进行编码,因此无法获得预期的结果 - UTF-8。

在GAE上,您需要明确设置编码 - 改为使用getBytes("UTF-8")