参考http://hi.baidu.com/mygia/blog/item/18032e7f149be81b29388afa.html
smsEncodedNumber方法不对,已经按照规则http://wenku.baidu.com/view/bb06353043323968011c92f7.html修改 并且加了短信的分割和合并 import java.io.File; import java.io.UnsupportedEncodingException; public class PduCoding { public static String decodeSms(String text){ StringBuffer sb=new StringBuffer(); try{ for(int i=0,n=text.length();i <n;i+=4){ char c = (char)Integer.parseInt(text.substring(i,i+4),16); sb.append(c); } }catch(Exception e){ System.out.println("---------decodeSms--text"); sb.append(text); } return sb.toString(); } private static String smsEncodedContent(String srvContent) { StringBuffer sb = new StringBuffer(); int length = srvContent.length(); for(int i=0;i<length;i++){ String s = srvContent.substring(i, i+1); //是字符,前面两位是00 中文需要四位16进制来表示 if(s.getBytes().length==1){ sb.append("00"); } sb.append(Integer.toHexString(srvContent.charAt(i))); } return sb.toString().toUpperCase(); } public static String smsEncodedContentLength(int len){ StringBuffer sb=new StringBuffer(); //最后接上内容编码长度的1/2 用16进制的2位来表示 if(Integer.toHexString(len/2).length()<2){ sb.append("0"); } sb.append(Integer.toHexString(len/2)); return sb.toString().toUpperCase(); } /** * 函数说明: * 1,将奇数位和偶数位交换。 * 2,短信中心号奇偶数交换后,看看长度是
短信PUD编码
最新推荐文章于 2021-12-14 16:13:39 发布
这个博客主要介绍了短信PDU编码的相关方法,包括短信内容、短信中心号码的编码和解码,以及短信的分割和合并。提供的Java代码实现包含了编码和解码的关键函数,如smsEncodedContent、smsEncodedNumber、decodeSms等,同时也提供了多条短信的解码示例。
摘要由CSDN通过智能技术生成