`
金笛子
  • 浏览: 36128 次
社区版块
存档分类
最新评论

UCS2编码与解码

 
阅读更多
/*--------------------------------------------------------------*/

//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
分享到:
评论

相关推荐

    UNIX/LINUX下C语言中文短信UCS2编码和解码函数源码

    发送中文短信,会用到UCS2编码,很多网友反应中文发送和接收乱码,这个烦恼可以解决了。 注意:要在系统配置里增加 LANG=zh_CN.GB18030 export LANG 语言配置不对,这个函数会出错的,另外,例子有点问题,换一个...

    短信UCS编码或解码工具

    UCS编码在短信领域的应用主要是通过其子集UCS2,这是一种16位的编码方式,能够表示大量的Unicode字符。 短信UCS编码工具是用来处理短信中的字符编码转换问题的工具,它可以方便地在不同的编码格式之间进行切换,...

    PHP UCS2编码,解码

    本文将深入探讨PHP中UCS2(Unicode Character Set, 16-bit)编码与解码的实现,以及它在手机发送短信场景中的应用。 UCS2是Unicode标准的一个早期版本,它使用16位的二进制表示每个字符,能够覆盖Unicode基本多文种...

    ASCII码及UCS2编码转换器,包含中文编解码

    ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)和UCS2(Unicode Character Set,Unicode的16位编码形式)都是广泛使用的字符编码系统。这篇文档将详细阐述这两种编码方式...

    短信编码与解码C语言ucs2

    本文将深入探讨短信的格式、UCS2编码以及如何用C语言实现短信的编码和解码。 短信格式通常遵循GSM 03.38或3GPP TS 23.038标准,这些标准定义了短信中的字符集和编码规则。GSM 03.38是最常见的短信编码标准,它使用7...

    SMS 消息编码与解码---C语言实现(bit7 bit8 ucs2串口等)

    在本文中,我们将深入探讨如何使用C语言实现SMS消息的编码和解码,特别是7-bit编码和解码,以及UCS2编码。首先,我们关注7-bit编码和解码算法。 7-bit编码是一种用于SMS(Short Message Service)的编码方式,它...

    中英文手机短信PDU编码(UCS2)解码(UCS2,7-Bit) C# 程序

    实例32 &lt;br&gt;稿件名称:中英文手机短信PDU编码(UCS2)解码(UCS2,7-Bit) C# 程序 &lt;br&gt;稿件作者:李仓海 &lt;br&gt;程序名称:TC35iSMS &lt;br&gt;运行环境:TC35iSMS &lt;br&gt;注意事项:

    UCS2-汉字互相转换

    6. **UCS2与GBK/GB2312的差异**: GBK是针对中文的一种编码,它是GB2312的扩展,兼容了UCS2的一部分但并不完全相同。在实际应用中,可能需要处理GBK编码的文件或数据,这时需要进行GBK与UCS2之间的转换。 综上所述,...

    SmsTest.rar_7bit转ucs2编码_SMS 8bit_ucs2 解码_短信 ucs2_短信中ucs2编码

    本文将深入探讨“SmsTest.rar”这个压缩包所涉及的7bit、8bit和UCS2编码,以及它们在短信中的应用和解码过程。 首先,我们要理解的是短信编码的基本概念。在早期的GSM(全球系统移动通信)网络中,短信服务主要使用...

    SMS.zip_7-bit编码解码_UCS2_encode decode_sms ucs2

    本文将深入探讨标题和描述中提及的“7-bit编码解码”和“UCS2编码解码”在短信传输中的应用,以及它们如何与“sms_ucs2”相关联。 首先,我们来了解7-bit编码。7-bit编码是一种最基本的字符编码方式,它使用二进制...

    UCS2_80_81_82编码实现

    UCS2,全称Unicode Character Set with 16-bit encoding form,是Unicode编码的一种实现方式。Unicode是一个国际标准,旨在为世界上所有语言提供一个统一的字符集,它定义了每个字符的唯一数字代码,通常称为码点。...

    易语言Ansi与Ucs2互转源码.7z

    本压缩包"易语言Ansi与Ucs2互转源码.7z"中包含的源代码,是专门用于在易语言环境下进行Ansi与Ucs2编码之间的转换。这样的转换在处理不同编码格式的数据时非常有用,例如在读写文本文件、网络通信或数据库操作中。...

    嵌入式字符编码(经典)(ucs2,+unicode,+utf8,+gb2312)[借鉴].pdf

    本文主要围绕四个重要的字符编码体系展开:ASCII、Unicode(UCS)、UTF-8以及GB2312,这些都是在软件网络技术中广泛使用的编码格式。 1. ASCII(American Standard Code for Information Interchange):ASCII是最...

    GSM_PDU编码(最详细版).pdf

    - **UCS2编码与解码**:用于处理非ASCII字符的数据编码与解码。 - **MSCOMM控件**:在Visual Basic等环境中实现串口通信的关键组件。 通过上述内容的学习,开发者可以深入了解GSM Modem的工作原理,从而更好地设计...

    短信pdu编码解码_短信_短信PDU编码_pdu_

    4. **短信内容编码**:短信内容根据字符集(如7位的GSM 7位编码集,或者16位的UCS-2编码)进行编码,超过7位的字符集需要使用扩展格式。 5. **校验和计算**:为了确保数据传输的准确性,编码过程中会生成一个校验和...

    GB13000 UCS-2格式转UTF-8

    身份证读卡器生成的基本信息TEXT文件,由于是采用 GB 13000 的 UCS-2 编码格式,java读取出来是乱码,这个段代码就是解决转码问题的,亲测可用

    字符编解码工具, utf8 asic ucs2 UCS2 BIG

    UTF-8、ASCII、UCS2和UCS2-BIG都是字符编码标准,它们各自有不同的特性和用途。 首先,ASCII(美国标准信息交换代码)是最基础的7位编码系统,能够表示128个不同的字符,主要包括英文字符、数字、标点符号和控制...

    UCS2 GB 转换

    UCS2与GB2312之间的转换对于开发人员来说是非常常见的需求,特别是在处理中文文本时。例如,如果你有一个使用UCS2编码的文本文件,而你的系统或者API要求使用GB2312编码,那么你就需要进行转换。转换过程通常涉及...

    GSM-PDU模式短信编解码-java代码

    项目中用到了AT指令中的GSM短信息的收发,上网找的代码大多都是C或者C++语言编写...4、代码中实现了PDU模式下7bit编码和UCS2编码这两种常用编码方式下的数据编码与解码 5、代码中实现了对信息中是否包含中文字符的判断

    手机短信编码解码Demo

    在GSM系统中,短信主要使用7位的ASCII编码或16位的UCS-2(Unicode)编码,但由于无线信道的限制,单个短信不能超过160个7位字符或70个16位字符。为了解决这个问题,短信被分割成多个部分,每个部分称为一个PDU...

Global site tag (gtag.js) - Google Analytics