问题:
相同的一串消息,有英文有中文,用极光平台的后台管理网页进行推送,客户端收到的消息是正常的,但通过编程方式使用JPushAPI进行推送时,客户端收到的消息却不正常(中文都变成乱码了)。

原因:
多半原因就是编写推送代码的时候,不小心漏掉了消息编码转换的那一段。举个例子,用java编程,利用HttpPost进行提交,不单单要设置httppost的头部信息编码格式,更重要的是,还要设置消息体编码格式(很多猿人往往都是遗漏了这一点)。

解决:
把这两个地方的编码格式设置正确了,推送接收消息就正常了。
大概的编码格式设置如下:
消息头:
httppost.addHeader("Content-Type", "application/json;charset=UTF-8");
消息体:
StringEntity entity = new StringEntity(jsonObject.toString(), "utf-8");
httppost.setEntity(entity);
都设置好了,就可以安心post了:
response = httpclient.execute(httppost);