小编Dum*_*Bee的帖子

在GCM POST请求中解析除英语文字之外的所有语言

部分解决方案由:

使用Erlang解析ASCII字符

案例1:这适用于印地语文本

mod_pushAndroid:send_gcm_msg('APA91bFME7yEJagEeHY7-qRP4Zz4LAYBG5mTALL9TNfrep39uT92AFuQ1ILouWkfPq52GgI3QPNbXHzFfOou67XPtum2J14MnkUdhs0vyccVPDRzLVGrE68k4BNPwRlqQUOv',
    "GROUP","Message","2001","GIS=d",
    list_to_binary([224,164,181,224,164,191,224,164,149,224,164,191,224,164,
                    170,224,165,128,224,164,161,224,164,191,224,
                    164,175,224,164,190]),
    "9@devlan/sd","asas"). 
Run Code Online (Sandbox Code Playgroud)

结果:

{ok,"{\"multicast_id\":7485677963483149262,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1434977706573613%38d7c464f9fd7ecd\"}]}"}
Run Code Online (Sandbox Code Playgroud)

案例2:英文字母(ASCII值100,101等)

(ejabberd@localhost)3> mod_pushAndroid:send_gcm_msg('APA91bFME7yEJagEeHY7-qRP4Zz4LAYBG5mTALL9TNfrep39uT92AMQ1ILouWkfPq52GgI3QPNbXHzFfOou67XPtum2J14MnkUdhs0vyccVPDRzLVGrE68k4BNPwRlqQUOv',
    "GROUP","Message","2001","GIS=d",
    list_to_binary([100,101,102,103]),
    "9@devlan/sd","asas").    

{error,{"HTTP/1.1", "JSON_PARSING_ERROR: Unexpected token END OF FILE at position 402.\n"}}
Run Code Online (Sandbox Code Playgroud)

案例3:抛出异常

(ejabberd@localhost)4> mod_pushAndroid:send_gcm_msg('APA91bFME7yEJagEeHY7-qRP4Zz4LAYBG5mTALL9TNfrLouWkfPq52GgI3QPNbXHzFfOou67XPtum2J14MnkUdhs0vyccVPDRzLVGrE68k4BNPwRlqQUOv',
    "GROUP","Message","2001","GIS=d",
    list_to_binary([224,164,100,101,102,103]),
    "9@devlan/sd","asas").
** exception exit: {ucs,{bad_utf8_character_code}}
     in function  xmerl_ucs:from_utf8/1 (xmerl_ucs.erl, line 185)
     in call from mochijson2:json_encode_string/2 (mochijson2.erl, line 218)
     in call from mochijson2:'-json_encode_proplist/2-fun-0-'/3 (mochijson2.erl, line 199)
     in call from lists:foldl/3 (lists.erl, line 1248)
     in call from mochijson2:json_encode_proplist/2 (mochijson2.erl, line 202)
     in call from mochijson2:'-json_encode_proplist/2-fun-0-'/3 (mochijson2.erl, line 199)
     in call …
Run Code Online (Sandbox Code Playgroud)

erlang android xmpp ejabberd google-cloud-messaging

5
推荐指数
0
解决办法
127
查看次数

标签 统计

android ×1

ejabberd ×1

erlang ×1

google-cloud-messaging ×1

xmpp ×1