请问谁有有关短信接收pdu转为汉字的资料
各位大侠,GSM返回来的PDU代码若要转换成汉字,并提取信息需要考虑很多情况,且小弟刚接触串口通信编程,时间又急 ,哪位大侠有有关短信接收pdu转为汉字的资料贡献下给小弟啊 谢谢了 问题点数:20、回复次数:10Top
1 楼independently(我是风筝高高飞)回复于 2006-03-11 11:52:51 得分 0
/////////////////////////////////////
///文 件:PDUdecoding.cs
///概 要:针对国内短信解码(USC2)
///组成结构:包含四个函数:
/// 1、GetEverySMS(string SMS)
/// 2、GetTelphone(string SMS)
/// 3、GetDataTime(string SMS)
/// 4、GetContent(string SMS)
////////////////////////////////////
using System;
using System.Text;
namespace smsForCharp
{
/// <summary>
/// PDUdecoding 的摘要说明。
/// </summary>
public class PDUdecoding
{
public PDUdecoding()
{
// TODO: 在此处添加构造函数逻辑
}
/// <summary>
/// 判断接受的短信是PDU格式还是TEXT格式
/// </summary>
public bool IsPDU(string SMS)
{
if(SMS.Substring(40,2)!="08")
return false;
return true;
}
/// <summary>
/// 函数功能:短信内容提取
/// 函数名称:GetEverySMS(string SMS)
/// 参 数:SMS 要进行提取的整个短信内容
/// 返 回 值:将多个短信内容拆分
/// </summary>
public string[] GetEverySMS(string SMS)
{
char[] str="\n".ToCharArray();
string[] temp=SMS.Split(str);
return temp;
}
/// <summary>
/// 函数功能:提取短信的发送人电话号码
/// 函数名称:GetTelphone(string SMS)
/// 参 数:SMS 要进行转换的整个短信内容
/// 返 回 值:电话号码
/// </summary>
public string GetTelphone(string SMS)
{
string tel=SMS.Substring(24,14);
string s="";
for(int i=0;i<11;i+=2)
{
s+=tel[i+1];
s+=tel[i];
}
s+=tel[tel.Length-1];
return s;
}
/// <summary>
/// 函数功能:提取短信的发送时间
/// 函数名称:GetDataTime(string SMS)
/// 参 数:SMS:要进行转换的整个短信内容
/// 返 回 值:发送时间
/// </summary>
public string GetDataTime(string SMS)
{
string time=SMS.Substring(42,12);
string s="";
for(int i=0;i<11;i+=2)
{
s+=time[i+1];
s+=time[i];
}
string t=s.Substring(0,2)+"年"+s.Substring(2,2)+"月"+s.Substring(4,2)+"日"+s.Substring(6,2)+":"+s.Substring(8,2)+":"+s.Substring(10,2);
return t;
}
/// <summary>
/// 函数功能:提取短信的内容(PDU)
/// 函数名称:GetContent(string SMS)
/// 参 数:SMS:要进行转换的整个短信内容
/// 返 回 值:短信内容
/// </summary>
public string GetContent(string SMS)
{
string c="";
string len=SMS.Substring(56,2);
int length=System.Convert.ToInt16(len,16);
length*=2;
string content=SMS.Substring(58,length);
for(int i=0;i<length;i+=4)
{
string temp=content.Substring(i,4);
int by=System.Convert.ToInt16(temp,16);
char ascii=(char)by;
c+=ascii.ToString();
}
return c;
}
/// <summary>
/// 函数功能:提取短信的TEXT内容(TEXT)
/// 函数名称:GetTextContent(string SMS)
/// 参 数:SMS:要进行转换的整个短信内容
/// 返 回 值:短信内容
/// </summary>
public string GetTextContent(string SMS)
{
string str="";
string c="";
byte by;
char ascii;
int i;
SMS=SMS.Replace("\r","");
SMS=SMS.Replace("\n","");
string content=SMS.Substring(58);
for(i=content.Length-2;i>=0;i-=2)
{
by=Convert.ToByte(content.Substring(i,2),16);
str+=Convert.ToString(by,2).PadLeft(8,'0');
}
for(i=str.Length-7;i>=0;i-=7)
{
by=Convert.ToByte(str.Substring(i,7),2);
ascii=(char)by;
c+=ascii.ToString();
}
return c;
}
}
}
这是我写的一个PDU解码的类。你可以参考下。呵呵Top
2 楼CGACHA()回复于 2006-03-11 11:53:45 得分 0
谢谢大哥~~我看看先....Top
3 楼independently(我是风筝高高飞)回复于 2006-03-11 11:55:03 得分 0
呵呵。不客气。Top
4 楼qpgsd(青苹果)回复于 2006-03-11 14:39:24 得分 0
好像不同的手机有不同的编码方式吧,有的用UTF8编码,有的用PDU什么的,我觉得没那么简单Top
5 楼CGACHA()回复于 2006-03-11 15:56:15 得分 0
大哥 能简单解释下GetTextContent() 和GetContent()方法吗? 得到短信内容的PDU码后是不是先要转成16进制的字符串? *_*Top
6 楼CGACHA()回复于 2006-03-11 15:58:47 得分 0
恩,应该是 每个手机都不同 现在就是最后短信内容转还卡着 希望大侠帮忙~Top
7 楼independently(我是风筝高高飞)回复于 2006-03-12 11:56:21 得分 20
CGACHA():你好,我给你的代码是针对西门子模块的,PDU算法解码。西门子模块支持基于AT指令的Text Mode和基于AT指令的PDU Modem,前一种比较简单,后一种要复杂些,你可以参考网站:http://www.mcuchina.com/Article/Communication/SMS/200503/413.html 介绍的很详细。我给你的这个程序:GetContent()是对接受到的汉字进行解码,而GetTextContent()是对接受到的TEXT模式的短信进行解码,(也就是接受到的短信都是可见字符:字母。数字。标点符号等可打印字符),针对这种编码,需要一个7bit到ASCII的转换。你先仔细看下我给你的网站,呵呵。Top
8 楼CGACHA()回复于 2006-03-13 08:49:31 得分 0
呵呵,谢谢大哥指点~!!!!!祝你好运!~Top
9 楼independently(我是风筝高高飞)回复于 2006-03-13 08:55:11 得分 0
有不懂的地方咱们可以探讨,呵呵,我刚做完这个项目,所以比较熟悉。Top
10 楼noah5888()回复于 2006-04-17 15:56:53 得分 0
您好:
短信群发器(短信猫)(全国最低价)=750元/台
短信开发接口(无时间和使用次数的限制)=800元
我公司现面向全国诚征短信产品代理商,全线代理我公司产品,代理我公司产品具有投资少,见效快,收益高等特点!有意者请速与我公司联系:13391791746/010-87416460,谢谢!
我公司郑重承诺:诺亚短信开发接口与诺亚短信设备(短信猫)无任何绑定限制(无时间和使用次数的限制):即第一次买入后,以后无需再次购买此开发接口,请广大用户在购买时注意咨询,如有疑问,欢迎来电咨询!诺亚短信设备(短信猫)为全国最低价!
我公司还供应以下软件产品(短信群发/群发短信/短信群发软件/短信开发接口/短信开发包/短信群发软件/短信卡/短信猫/小灵通短信猫/短信群发器/短信群发机):
诺亚·短信开发接口 诺亚·短信群发·办公版
诺亚·短信防伪·系统 诺亚·短信群发·广告版
诺亚·短信查询·系统 诺亚·短信群发·网络版
诺亚·短信家校通·版 诺亚·短信群发·物流版
诺亚·短信群发卡(短信卡)诺亚·短信群发·集团版(群发短信资费:8分/条)
注:全部产品售后服务为:3年质保!
我公司可为广大用户办理货到付款业务!
如需了解更多优惠信息,请与我们联系:
北京诺亚公司
联系人:王先生
地 址:北京市海淀区远大路20号鹏安世纪大厦A座12A
邮 编:100089
电 话:13391791746/010-87416460/010-51980693
传 真:010-51666783
邮 箱:webmaster@noahsoft.cn
QQ 号:397923974
MSN:noahsoft@hotmail.com
网 址:www.noahsoft.cnTop




