/*--------------------------------------------------------------*/
//UCS2编码
// 输入: pSrc - 源字符串指针
//nSrcLength - 源字符串长度
// 输出: pDst - 目标编码串指针
// 返回: 目标编码串长度
/*----------------------------------------------------------------*/
intgsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
intnDstLength; // UNICODE宽字符数目
WCHARwchar[128]; // UNICODE串缓冲区
// 字符串-->UNICODE串
nDstLength= MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128);
// 高低字节对调,输出
for(inti=0; i<nDstLength; i++)
{
*pDst++= wchar[i] >> 8; // 先输出高位字节
*pDst++= wchar[i] & 0xff; // 后输出低位字节
}
// 返回目标编码串长度
returnnDstLength * 2;
}
/*----------------------------------------------------*/
//UCS2解码
// 输入: pSrc - 源编码串指针
//nSrcLength - 源编码串长度
// 输出: pDst - 目标字符串指针
// 返回: 目标字符串长度
/*-------------------------------------------------------*/
intgsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
intnDstLength; // UNICODE宽字符数目
WCHARwchar[128]; // UNICODE串缓冲区
// 高低字节对调,拼成UNICODE
for(inti=0; i<nSrcLength/2; i++)
{
wchar[i]= *pSrc++ << 8; // 先高位字节
wchar[i]|= *pSrc++; // 后低位字节
}
//UNICODE串-->字符串
nDstLength= WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);
// 输出字符串加个结束符
pDst[nDstLength]= '/0';
// 返回目标字符串长度
returnnDstLength;
}转自bbs.sendsms.cn
分享到:
相关推荐
发送中文短信,会用到UCS2编码,很多网友反应中文发送和接收乱码,这个烦恼可以解决了。 注意:要在系统配置里增加 LANG=zh_CN.GB18030 export LANG 语言配置不对,这个函数会出错的,另外,例子有点问题,换一个...
UCS编码在短信领域的应用主要是通过其子集UCS2,这是一种16位的编码方式,能够表示大量的Unicode字符。 短信UCS编码工具是用来处理短信中的字符编码转换问题的工具,它可以方便地在不同的编码格式之间进行切换,...
本文将深入探讨PHP中UCS2(Unicode Character Set, 16-bit)编码与解码的实现,以及它在手机发送短信场景中的应用。 UCS2是Unicode标准的一个早期版本,它使用16位的二进制表示每个字符,能够覆盖Unicode基本多文种...
ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)和UCS2(Unicode Character Set,Unicode的16位编码形式)都是广泛使用的字符编码系统。这篇文档将详细阐述这两种编码方式...
本文将深入探讨短信的格式、UCS2编码以及如何用C语言实现短信的编码和解码。 短信格式通常遵循GSM 03.38或3GPP TS 23.038标准,这些标准定义了短信中的字符集和编码规则。GSM 03.38是最常见的短信编码标准,它使用7...
在本文中,我们将深入探讨如何使用C语言实现SMS消息的编码和解码,特别是7-bit编码和解码,以及UCS2编码。首先,我们关注7-bit编码和解码算法。 7-bit编码是一种用于SMS(Short Message Service)的编码方式,它...
实例32 <br>稿件名称:中英文手机短信PDU编码(UCS2)解码(UCS2,7-Bit) C# 程序 <br>稿件作者:李仓海 <br>程序名称:TC35iSMS <br>运行环境:TC35iSMS <br>注意事项:
6. **UCS2与GBK/GB2312的差异**: GBK是针对中文的一种编码,它是GB2312的扩展,兼容了UCS2的一部分但并不完全相同。在实际应用中,可能需要处理GBK编码的文件或数据,这时需要进行GBK与UCS2之间的转换。 综上所述,...
本文将深入探讨“SmsTest.rar”这个压缩包所涉及的7bit、8bit和UCS2编码,以及它们在短信中的应用和解码过程。 首先,我们要理解的是短信编码的基本概念。在早期的GSM(全球系统移动通信)网络中,短信服务主要使用...
本文将深入探讨标题和描述中提及的“7-bit编码解码”和“UCS2编码解码”在短信传输中的应用,以及它们如何与“sms_ucs2”相关联。 首先,我们来了解7-bit编码。7-bit编码是一种最基本的字符编码方式,它使用二进制...
UCS2,全称Unicode Character Set with 16-bit encoding form,是Unicode编码的一种实现方式。Unicode是一个国际标准,旨在为世界上所有语言提供一个统一的字符集,它定义了每个字符的唯一数字代码,通常称为码点。...
本压缩包"易语言Ansi与Ucs2互转源码.7z"中包含的源代码,是专门用于在易语言环境下进行Ansi与Ucs2编码之间的转换。这样的转换在处理不同编码格式的数据时非常有用,例如在读写文本文件、网络通信或数据库操作中。...
本文主要围绕四个重要的字符编码体系展开:ASCII、Unicode(UCS)、UTF-8以及GB2312,这些都是在软件网络技术中广泛使用的编码格式。 1. ASCII(American Standard Code for Information Interchange):ASCII是最...
- **UCS2编码与解码**:用于处理非ASCII字符的数据编码与解码。 - **MSCOMM控件**:在Visual Basic等环境中实现串口通信的关键组件。 通过上述内容的学习,开发者可以深入了解GSM Modem的工作原理,从而更好地设计...
4. **短信内容编码**:短信内容根据字符集(如7位的GSM 7位编码集,或者16位的UCS-2编码)进行编码,超过7位的字符集需要使用扩展格式。 5. **校验和计算**:为了确保数据传输的准确性,编码过程中会生成一个校验和...
身份证读卡器生成的基本信息TEXT文件,由于是采用 GB 13000 的 UCS-2 编码格式,java读取出来是乱码,这个段代码就是解决转码问题的,亲测可用
UTF-8、ASCII、UCS2和UCS2-BIG都是字符编码标准,它们各自有不同的特性和用途。 首先,ASCII(美国标准信息交换代码)是最基础的7位编码系统,能够表示128个不同的字符,主要包括英文字符、数字、标点符号和控制...
UCS2与GB2312之间的转换对于开发人员来说是非常常见的需求,特别是在处理中文文本时。例如,如果你有一个使用UCS2编码的文本文件,而你的系统或者API要求使用GB2312编码,那么你就需要进行转换。转换过程通常涉及...
项目中用到了AT指令中的GSM短信息的收发,上网找的代码大多都是C或者C++语言编写...4、代码中实现了PDU模式下7bit编码和UCS2编码这两种常用编码方式下的数据编码与解码 5、代码中实现了对信息中是否包含中文字符的判断
在GSM系统中,短信主要使用7位的ASCII编码或16位的UCS-2(Unicode)编码,但由于无线信道的限制,单个短信不能超过160个7位字符或70个16位字符。为了解决这个问题,短信被分割成多个部分,每个部分称为一个PDU...