1

在 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());

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

4

1 回答 1

4

GAE 上的默认系统 (JVM) 编码是 US-ASCII。由于string.getBytes()使用系统编码对字符串进行编码,因此您不会得到您所期望的 - UTF-8。

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

于 2013-10-28T13:20:29.553 回答