GAE 数据存储编码问题



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

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

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

在 GAE 上,您需要显式设置编码 - 请改用getBytes("UTF-8")

最新更新