社区
C#
帖子详情
求手机短信PDU编码的7-bit解码
zjgsteven
2004-08-03 11:06:44
自己做出了UCS2编码解码就是做不出7-bit解码
请参见
http://dev.csdn.net/develop/article/17/17465.shtm
但这个是C版,搞不懂呀。
请指点。
...全文
167
3
打赏
收藏
求手机短信PDU编码的7-bit解码
自己做出了UCS2编码解码就是做不出7-bit解码 请参见 http://dev.csdn.net/develop/article/17/17465.shtm 但这个是C版,搞不懂呀。 请指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjgsteven
2004-08-03
打赏
举报
回复
好像不太对吧,7-bit是全英文状态的如短信内容是“TJGM”它们对应的16进制分别是54 4A 47 4D分成2进制是1010100 10010010 1000111 1001101 然后再压缩补位(见http://dev.csdn.net/develop/article/17/17465.shtm中7-bit图)得到01010100 11100101 10110001 1001分别对应16进制的54 E5 B1 09
发出短信后手机收到的短信内容应该是54E5B109,现在是怎么把54E5B109还源到544A474D,然后再还原成短信内容“TJGM”???
叶子哟
2004-08-03
打赏
举报
回复
C#.Net 里面实现字符的编码和解码——
#region 生成字符(含英文)引用码
/// <summary>
/// 生成unicode实体引用的wap字符串,所有汉字均由此转换
/// </summary>
/// <param name="s_Chinese">中文字符串,可夹英文</param>
/// <returns></returns>
protected string Gen_Unicode(string s_Chinese)
{
string s_retu="";
char[] c_chars=s_Chinese.ToCharArray();
for(int i=0;i<c_chars.Length;i++)
{
s_retu+="&#x" + ((short)c_chars[i]).ToString("X")+ ";";
}
return s_retu;
}
/// <summary>
/// 把 WAP 代码转换为字符(中文字符串,可夹英文)
/// </summary>
protected string Gen_Chinese(string s_Unicode)
{
string s_retu="";
string s1="";
string s2="";
byte[] array = new byte[2];
char []spar={';'};
string []chinese = s_Unicode.Split(spar);
int count=chinese.Length;
if(count>0)
{
for(int i=0;i<count;i++)
{
string s_tmp=chinese[i].Trim();
if(s_tmp!="")
{
// s_tmp=s_tmp.Substring(4);
if(s_tmp.Length>=4)
{
s1 = s_tmp.Substring(0,2);
s2 = s_tmp.Substring(2,2);
array[0] = (byte)Convert.ToInt32(s1,16);
array[1] = (byte)Convert.ToInt32(s2,16);
s_retu =s_retu + System.Text.Encoding.BigEndianUnicode.GetString(array);
}
else //英文的
{
// s1 = s_tmp.Substring(0,2);
s1 = "00";
s2 = s_tmp;
array[0] = (byte)Convert.ToInt32(s1,16);
array[1] = (byte)Convert.ToInt32(s2,16);
s_retu =s_retu + System.Text.Encoding.BigEndianUnicode.GetString(array);
}
}
}
}
return s_retu;
}
/// <summary>
/// 把字符转换为双字节的 hex
/// </summary>
/// <param name="s_Chinese">中文字符串,可夹英文</param>
protected string Gen_Hex(string s_Chinese)
{
string s_retu="";
char[] c_chars=s_Chinese.ToCharArray();
for(int i=0;i<c_chars.Length;i++)
{
string hex=((short)c_chars[i]).ToString("X");
if(hex.Length==2)//如果是单字节的则转换为双字节的字符
hex = "00" + hex;
s_retu+=hex;
}
return s_retu;
}
/// <summary>
/// 把 hex 代码转换为字符(中文字符串,可夹英文)
/// </summary>
protected string Gen_CharFromCode(string code)
{
string s = "";
for(int i=0;i<code.Length;i+=4)
{
string s1 = code.Substring(i,2);
string s2 = code.Substring(i+2,2);
int t1 = Convert.ToInt32(s1,16);
int t2 = Convert.ToInt32(s2,16);
byte[] array = new byte[2];
array[0] = (byte)t1;
array[1] = (byte)t2;
s += System.Text.Encoding.BigEndianUnicode.GetString(array);
}
return s;
}
#endregion
中英文
手机短信
PDU
编码
(UCS2)
解码
(UCS2,7-
Bit
) C# 程序
实例32 <br>稿件名称:中英文
手机短信
PDU
编码
(UCS2)
解码
(UCS2,7-
Bit
) C# 程序 <br>稿件作者:李仓海 <br>程序名称:TC35iSMS <br>运行环境:TC35iSMS <br>注意事项:
SMS 消息
编码
与
解码
---C语言实现(
bit
7
bit
8 ucs2串口等)
1,消息
编码
与
解码
1),用C实现7-
bit
编码
和
解码
的算法 2),用C实现UCS2
编码
和
解码
的算法 2,消息的发送(
PDU
编
解码
) 1),发送短消息 2),读取短消息 3),删除短消息 3,串口读写短信
PDU
短信编
解码
工具(升级版)
超级好用的短信编
解码
工具,可以解析各种类型的使用
PDU
编码
的短信,也可以根据给定的信息生成
PDU
编码
串,非常方便短信程序开发
PDu
中7
bit
编
解码
经过产品测试的代码,肯定能用,在网上下载的基础上调试修改了
GSM短信发送
PDU
编码
解码
C++消息队列调用参考.pdf
GSM短信发送
PDU
编码
解码
C++消息队列调用参考.pdf
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章