短信猫开发(2): 接收短信后的解码
来源:互联网 发布:战龙三国吕布进阶数据 编辑:程序博客网 时间:2024/05/09 08:05
at+cmgf=0 // 设置为PDU方式接收短信
接收到的信息:
+CMGR: 0,,25
08
91
683110903305F0
20
0D
91
683148625389F3
00
00 // 代表编码方式为7位编码方式 08:代表为16位编码方式
61803051525023
05
E8329BFD06
OK
对接收到的信息解码:
/// <summary> /// 解码由7位编码的字符串 /// </summary> /// <param name="src"></param> /// <returns></returns> public String Decode7(String src) { StringBuilder sb = new StringBuilder(); int[] cs = new int[src.Length / 2]; //将字符串形式的十六进制数转换位整数 int tmpout = 0; for (int i = 0; i < src.Length / 2; i++) { if (int.TryParse(src.Substring(i * 2, /*i * 2 +*/ 2), System.Globalization.NumberStyles.AllowHexSpecifier, null, out tmpout)) { cs[i] = tmpout; } } int iLeft = 0;//上一个字符剩余的部分 int iChar = 0;//当前字符应处理位的个数 int tmp = 0;//中间变量 int j = 0;//循环变量 while (j < cs.Length) { tmp = ((cs[j] << iChar) & 0x7f) | iLeft; sb.Append((char)tmp); iLeft = cs[j] >> (7 - iChar); j++; iChar++; if (iChar == 7) { sb.Append((char)iLeft); iLeft = 0; iChar = 0; } } if (iLeft != 0) sb.Append((char)iLeft); return sb.ToString(); }
/// <summary> /// 解码由16位编码的字符串 /// </summary> /// <param name="src"></param> /// <returns></returns> public String Decode16(String src) { StringBuilder sb = new StringBuilder(); int tmp = 0; for (int i = 0; i < src.Length / 4; i++) { if (int.TryParse(src.Substring(i * 4, /*(i + 1) * */ 4), System.Globalization.NumberStyles.AllowHexSpecifier, null, out tmp)) //tmp = Integer.parseInt(src.substring(i * 4, (i + 1) * 4), 16); sb.Append((char)tmp); } return sb.ToString(); }
其中,
System.Globalization.NumberStyles.AllowHexSpecifier表示 指示数值字符串表示一个十六进制值。
0 0
- 短信猫开发(2): 接收短信后的解码
- Android短信开发,短信接收时被拆分的解决方案
- 短信接收--短信接收的pdu解析
- android 短信的接收!
- 接收短信的广播
- 短信的接收流程
- 短信猫的开发
- Android6.0的SMS(短信)源码分析--短信接收
- Android6.0的SMS(短信)源码分析--短信接收
- QT串口接收SMS中文短信--解码
- 短信的接收,短信的发送
- 短信猫的发送与接收
- 利用短信猫接收短信控制台程序
- 短信猫接收与发送短信整理
- 短信猫接收与发送短信整理
- 接收短信
- 接收短信
- 短信接收
- [HDU5788] Level Up [2016 Multi-University Training Contest 5 1008 (2016多校联合训练5)]
- 谈谈对面向对象编程的认识
- HDU 1564 Play a game
- Tomcat与IIS共用80端口
- 从输入网址到显示网页的全过程分析
- 短信猫开发(2): 接收短信后的解码
- 第八轮回 相信它就像预期那样运行
- 【JVM】类加载、连接和初始化过程
- QT常用
- nodejs中edje 调用c#dll-笔记
- CMarkup简单快速的C++ XML解析器
- c++ 11 新特性
- php 三表查询集合分组,排序,别名,集合函数
- 将lnmp 自带的 php 5.4升级为 5.6