1

GAE では、いくつかのエンティティを保存します。サーブレット リクエストでは、保存されたデータを含むリクエストを 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 に答える