在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编码时,它已得到修复。
答案 0 :(得分:4)
GAE上的默认系统(JVM)编码是US-ASCII。由于string.getBytes()
使用系统编码对字符串进行编码,因此无法获得预期的结果 - UTF-8。
在GAE上,您需要明确设置编码 - 改为使用getBytes("UTF-8")
。