GCM和特殊字符

4

我最近将我的C2DM推送应用更改为GCM,出现了一个新问题。它现在接收到'?'而不是'ö','ï',...

我的服务器日志记录的字符串是正确的,但是应用程序却接收到了“?”。

你认为这可能与GCM有关吗?

我的代码如下:

public static void displayMessage(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
        String message = (String) extras.get("message");
        Log.v("extras", extras.toString());
        Util.generateNotification(context, message, intent);
    }
}

日志如下:

10-02 22:18:23.671: V/intent(29809): Bundle[{message={"name":"j?rg"},
message_id=8bb60eee-3a93-4075-b606-40495511a4da, collapse_key=do_not_collapse, from=160085429222}]

最好的问候!


我可以使用URLEncoder/Decoder...还有其他方法吗? - jobe
确保这不是日志记录的副产品。 - Seva Alekseyev
我确定。特殊/Latin1字符只是被“?”替换了。它在c2dm中运作得非常完美。 - jobe
1个回答

1

我认为GCM没有问题。尝试使用UTFEncoding来发送你的消息。

String output = new String(name.getBytes("8859_1"), "utf-8");

1
转换为UTF-8无效。 这可能是相同的问题:https://dev59.com/HWbWa4cB1Zd3GeqPTyhC - jobe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接