4
我在Google App Engine上部署了一個Servlet,它正在向GCM發送廣播消息。 Android客戶端將收到來自GCM的廣播消息。 Servlet使用以下代碼段擴展BaseServlet。接收到的GCM消息顯示爲亂碼文本
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//when receiving a gcm broadcast request, send message to GCM
Builder mb = new Message.Builder();
mb.addData("message", "The message to send");
Message message = mb.build();
sender.sendNoRetry(message, regIds);
...
}
當「發送的信息」是英文的時候,一切正常。但是,如果「發送的消息」被其他語言(如中文)取代,則Android客戶端將收到一串亂碼文本。在Android客戶端上,我使用擴展GCMBaseIntentService類來處理GCM廣播。
@Override
protected void onMessage(Context context, Intent intent) {
String message = "";
message = intent.getStringExtra("message")!=null ? intent.getStringExtra("message") : "";
doNotify(message);
}
我試圖重新編碼郵件,但不起作用。
message = new String(message.getBytes("ISO-8859-1"), "UTF-8");
對這個問題有什麼想法?我需要你的幫助,謝謝。
謝謝,它真正的幫助。在客戶端,它需要執行URLDecoder.decode()。 –
沒問題。我添加了你的評論來回答他人的幫助。 – wtsang02
這解決了我的問題, - URLEncoder&URLDecoder非常有幫助的類! – EsmaeelQash