📄 d226.bmp.txt
字号:
*pDst++= wcharlil>>8; //先输出高位字节
*pDst++= wchar[iJ&Oxff; ,/后输出低位字节
l
,,返回目标编码串长度
retum nDstLength 4 2;
)
(2) UCS2解码函数gsmDecodeUcs2(const unsigned char* pSrc,char* pDst, int nSrcLength)
●输入:pSrc-源编码串指针,nSrcLength-源编码串长度。
●输出:pDst-目标字符串指针。
●返回:目标字符串长度。
int gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
int nDstLength; //UNICODE宽字符数目
WCHAR wchar[1281; //UNICODE串缓冲区
,/高低字节对调,拼成UNICODE
for(int i=0; i<nSrcLength/2; 1++)
{
wchar[il= *pSrc++<<8; ,/先高位字节
wchar[i]I=*pSrc++; //后低位字节
1
//UNICODE串一>字符串
nDstLength = WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);
,/输出字符串加个结束符
pDst[nDstLength]=Ⅵ’;
//返回目标字符串长度
retum nDstLength;
)
上面已提到了PDU模式的PDU串的格式,下面通过具体的程序代码来介绍PDU编码
和解码的方法。
从上面提到的PDU格式中我们可以看到,在发送短消息时短消息服务中心号码和被Ⅱq
号码字符顺序均被两两颠倒,而在接收短信时,再将短消息服务中心号码和被叫号码两两颠
倒的字符顺序转换为正常顺序。
首先是编写2个函数分别用于调整短消息服务中心号码和被叫号码字符顺序。具体函数
代码如下:
(1)gsmInvertNumbers(const char* pSrc, char* pDst, int nSrcLength)
说明:正常顺序的字符串转换为两两颠倒的字符串,若长度为奇数,补“F”凑成偶数,
如:“8613851872468”一“683158812764F8”。
●输入:pSrc-源字符串指针,nSrcLength-源字符串长度。
226
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -