手机短信息SMS开发—编码和解码
日期:2007年8月16日 作者: 查看:[
大字体 中字体
小字体]
-
-
1、 英文编码
缺省的GSM字符集为7位编码,ASCII码为8位编码,编码就是将8位ASCII编码转换为7位编码。
例如:1234 编码后得到31D98C06
2进制表示
8位编码 00110001 00110010 00110011 00110100
7位编码 00110001 11011001 10001100 00000110
通过例子可以看出,将ascii8位编码的Bit8去掉,依次将下7位编码的后几位逐次移到前面,形成新的8位编码。
以下是C++Builder的实现代码:
String __stdcall EncodeEnglish(String InputStr)
{
int n,len,cur;
String tempstr,returnstr;
unsigned char mid1[2],mid2[2];
len=InputStr.Length();
n=0;
for(int i=1;i<=len;i++)
{
if (i
{
strcpy(mid1,InputStr.SubString(i,1).c_str());
strcpy(mid2,InputStr.SubString(i+1,1).c_str());
cur=(mid1[0]>>n)((mid2[0]<<(7-n))& 0xff);
}
else
{
strcpy(mid1,InputStr.SubString(i,1).c_str());
cur=(mid1[0]>>n)& 0x7f;
}
FmtStr(tempstr,"%2.2X",ARRAYOFCONST((cur)));
returnstr=returnstr+tempstr;
n=(n+1)%7;
if (n==0)
i++;
}
return returnstr;
}
2、英文解码
简单地说就是将7位字符编码转换为8为字符编码
以下是C++Builder的实现代码:
int ReturnHex(int Value)
{
switch (Value)
{
case 0:
Value=0x7f;
break;
case 1:
Value=0x3f;
break;
case 2:
Value=0x1f;
break;
case 3:
Value=0x0f;
break;
case 4:
Value=0x07;
break;
case 5:
Value=0x03;
break;
case 6:
Value=0x01;
break;
case 7:
Value=0x00;
break;
}
return Value;
}
String __stdcall DecodeEnglish (String InputStr)
- [1] [2] [3] 下一页
-
- 手机短信息SMS开发—编码和解码 相关文章:
- ·3GP手机视频转换工具WinAVI
- ·Windows Vista系统存储优化完全手册
- ·Vista下如何通过蓝牙手机控制计算机
- ·Photoshop快速使你的手机照变鲜艳
- ·Windows Vista系统美化之DLL手术终极宝典
- ·创意设计作品欣赏 手指头的角色扮演
- ·电子杂志设计制作手册
- ·卡巴斯基® 手机版正式线上发行
- ·赛迪网联手浪潮 开启服务器市场盘点大门
- ·新手入门 ASP.NET2.0缓存技术
- 手机短信息SMS开发—编码和解码 相关软件
- ·金牌杀手
- ·团队要塞2重火力手宣传片
- ·《苍天》双手大刀操作方法介绍视频
- ·《彩虹岛》1.13升级至1.14手动更新补丁
- ·QQ 连连看助手
- ·《荣誉勋章空降E3狙击手》游戏视频
- ·Excel2003函数应用完全手册
- ·《猎杀潜航之沉默猎手》试玩
- ·《死亡魔界》(VER27.2.0)手动补丁
- ·《华夏》4.0版增量手动补丁包
上一篇:深入VCL 理解BCB的消息机制(二)
下一篇:C++ Builder VCL库函数简介
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com