--Found私の問題への解決策をコードする、コードがのiOS /ジャワ(GWT + GAE)/ UrbanAirshipは、ドイツ語のウムラウト
は私がプッシュメッセージを介してドイツ語のウムラウト(OAU)を送信する際に問題が生じていますupdated--ですiPhone。 Google App EngineでJava/GWTを実行していて、プッシュ通知にUrbanAirshipを使用しています。次のコードは、私のMacで完璧に動作し、プッシュ通知は正しいドイツのウムラウトが入った状態で届きます。私がgae-serverに展開すると、ドイツのウムラウトは動作しません。これまでのところ、GAEでは標準のエンコーディングがUS-ASCIIであり、getBytes()やその他のものはすべてUTF-8に変更されました。 問題はまだ残っていますが、iPhoneでウムラウトを置き換えた疑問符は、背景として「ダイヤモンド」と表示されます。
ここで私が使用している方法は(ないGAEで、地元正常に動作します)来る:
private Boolean sendNotification(String appKey, String appMasterSecret, String jsonBodyString) {
try {
URL url = new URL("https://go.urbanairship.com/api/push/broadcast/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setConnectTimeout(12000);
String authString = appKey + ":" + appMasterSecret;
String authStringBase64 = Base64.encode(authString.getBytes("UTF-8"));
authStringBase64 = authStringBase64.trim();
connection.setRequestProperty("Content-type", "application/json; charset:utf-8");
connection.setRequestProperty("Authorization", "Basic " + authStringBase64);
OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
osw.write(new String(jsonBodyString.getBytes("UTF-8"),"UTF-8"));
osw.close();
int responseCode = connection.getResponseCode();
String responseMessage = connection.getResponseMessage();
if (responseCode == 200)
return true;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return false;
}
よろしくお願いします。私は、アプリエンジンのデフォルトの文字セットがUS-ASCIIであることを知りました。私のシステムのデフォルトの文字セットはUTF-8です。今私はUS-ASCIIをUTF-8に変換する必要があります。 –