在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")
。