当前位置:编程学习 > JAVA >>

android通过mjsip发送中文乱码

android客户端用mjsip协议发送消息,自定义包头,包体为中文,用java程序作为服务器监听mjsip消息。如果消息体中汉字个数为单数则出现乱码,如果汉字个数为双数则正常。求解释...


sip_Provider = new SipProvider(hostIp,PORT);
SipURL sipURL_to = new SipURL("best", IP, PORT);
SipURL sipURL_from = new SipURL("keysense",hostIp,15062);

SipURL sipURL_contact = new SipURL("keysense",hostIp,15062);

NameAddress to_url= new NameAddress(sipURL_to);

NameAddress from_url= new NameAddress(sipURL_from);
FromHeader fromHeader = new FromHeader(from_url, "123456789");

NameAddress contact_url= new NameAddress(sipURL_contact);

SipURL request_uri=to_url.getAddress(); 
invite = MessageFactory.createRequest(sip_Provider,"INFO",request_uri,to_url,from_url,contact_url,msg);
CSeqHeader cSeqHeader = new CSeqHeader(1,"INFO");


invite.setBody("text/xml", startFtp);
invite.setCSeqHeader(cSeqHeader);
invite.removeExpiresHeader();
invite.setFromHeader(fromHeader);

sip_Provider.sendMessage(invite);


如果msg为中国,java程序服务器接收正常,如果为中国人,接收服务器则为“中国”+乱码 --------------------编程问答--------------------
引用楼主  的回复:
android客户端用mjsip协议发送消息,自定义包头,包体为中文,用java程序作为服务器监听mjsip消息。如果消息体中汉字个数为单数则出现乱码,如果汉字个数为双数则正常。求解释...


sip_Provider = new SipProvider(hostIp,PORT);
SipURL sipURL_to = new SipURL("best", IP, PORT);
Sip……


invite.setBody("text/xml", startFtp);应该是invite.setBody("text/xml", msg);

求高手解释......... --------------------编程问答-------------------- 请问有关于mjsip的demo么,我主要就是数据方面的传输,是直接 用provider还是registClient啊?注册的时候 --------------------编程问答-------------------- 这个跟汉字的单双数没关系,在mjsip中是根据 body.length() 获取的内容长度,但是实际sip协议中Content-Length指的是内容的字节数,你可以根据编码格式获取汉字的字节长度,设置到Content-Length里,就可以发送中文了。
有问题可以加我QQ:511636835,一起讨论sip~~ --------------------编程问答--------------------
引用 3 楼 zuyanchen 的回复:
这个跟汉字的单双数没关系,在mjsip中是根据 body.length() 获取的内容长度,但是实际sip协议中Content-Length指的是内容的字节数,你可以根据编码格式获取汉字的字节长度,设置到Content-Length里,就可以发送中文了。
有问题可以加我QQ:511636835,一起讨论sip~~
求交流啊~~
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,