GSM短信7bit 8bit转换

深入解析GSM PDU 7bit短信编码与解码的实现原理 本文深入解析GSM PDU 7bit短信编码与解码的实现原理,详细介绍了7bit编码的核心算法、解码过程的逆向工程及实战优化技巧。通过位操作和字节填充机制,7bit编码能有效压缩短信数据,节省传输流量,特别适用于基础英文字符和数字的传输。文章还探讨了现代应用中7bit编码的变通方案及其在物联网和金融行业的实际价值。 阅读详情

关于短信内容格式及压缩方法今天研究了一下收发短信,8位编码转7位编码研究了半天,弄的一头雾水,最后还是在网上找到答案。 如下: 网短信压缩格式在TP-DCS中指示,TP-DCS在《GSM03.38》中有说明,一般都采用将7bit编码压缩成8bit编码方式,这种压缩方式也在《GSM03.38》中有详细说明。 压缩编码方式将8字节的7bit编码压缩成7字节的8bit编码,也就是说160字节长短信可以压缩为140字节的短信,压缩了20字节,具体压缩方法如下: 原始的8字节未压缩编码如下: - bits number: 6 5 4 3 2 1 0 1a 1b 1c 1d 1e 1f 1g 2a 2b 2c 2d 2e 2f 2g 3a 3b 3c 3d 3e 3f 3g 4a 4b 4c 4d 4e 4f 4g 5a 5b 5c 5d 5e 5f 5g 6a 6b 6c 6d 6e 6f 6g 7a 7b 7c 7d 7e 7f 7g 8a 8b 8c 8d 8e 8f 8g 经过压缩后的8bit编码如下: - eight characters in seven octets: - bits number: 7 6 5 4 3 2 1 0 2g 1a 1b 1c 1d 1e 1f 1g 3f 3g 2a 2b 2c 2d 2e 2f 4e 4f 4g 3a 3b 3c 3d 3e 5d 5e 5f 5g 4a 4b 4c 4d 6c 6d 6e 6f 6g 5a 5b 5c 7b 7c 7d 7e 7f 7g 6a 6b 8a 8b 8c 8d 8e 8f 8g 7a 从以上的压缩方法可以看出,第一个压缩后字节是第一个7bit在最高位加上第二个7bit的最低位,第二个压缩字节是第二个7bit的高六位加上第三个7bit的低两位,依次类推。 第七个压缩后字节(最后一个压缩字节)是第七个7bit的最高位加上整个第八个7bit的七位。这样就实现了将8个字节的7bit编码压缩成7个字节的8bit编码。 举一个具体的例子,字符串3132333435363738是7bit编码,现压缩成8bit编码。 3132333435363738转换为bit为00110001(31) 00110010(32) 00110011(33) 00110100(34) 00110101(35) 00110110(36) 00110111(37) 00111000(38),进行转换,过程如下: a,转换31,32的最低位到31的最高位,可以看到31不变,第一个压缩后字节为31 b,转换32,32由于取了最低位,相当于向右移了一位,为00011001,将33的低两位放在右移一位的31高位上,也就为11011001,即D9。 c,转换33,33由于取了低两位,相当于向右移了两位,为00001100,将34的低三位放在右移两位的33高位上,也就为10001100,即8C。 d,转换34,34由于取了低三位,相当于向右移了三位,为00000110,将35的低四位放在右移三位的34高位上,也就为01010110,即56。 e,转换35,35由于取了低四位,相当于向右移了四位,为00000011,将36的低五位放在右移四位的35高位上,也就为10110011,即B3。 f,转换36,36由于取了低五位,相当于向右移了五位,为00000001,将37的低六位放在右移五位的36高位上,也就为11011101,即DD。 g,转换37,37由于取了低六位,相当于向右移了六位,为00000000,将整个38的七位放在右移六位的37高位上,也就是1110000,即70。 到此7位编码的3132333435363738压缩为了7字节的31D98C56B3DD70,也就是说压缩掉了一字节。 在进行编码实现时,可以将压缩前的短信每8字节为一组进行处理,处理为压缩后的七字节,这样形成外层循环。循环次数为短信长度除以8再向上取整,例如11/8=1, 1+1 = 2,也就是经过两次循环。进行内层循环处理时,需要进行七次循环,循环到n(0<n<8)次时,首先将当前字节右移n-1位,取后一字节的低n位,放在当前字节右移n-1位后的高n位,这样就可以完成对8字节的压缩,进而完成对整个短信的压缩。

GSM短信编码与PDU模式处理实战 GSM 03.38标准定义了一组用于短信服务(SMS)的字符编码方案,而GSM_8是其中一种。GSM_8编码基于7位编码字符集,它能够将字符编码为7位的二进制形式,主要用于GSM网络中短信的传输。这种编码方案是为了提高短信的有效载荷,即在有限的字节内传输更多字符,从而有效地利用网络资源。GSM_8编码支持的字符集包括大小写英文字母、数字、一些特殊符号和扩展字符。需要注意的是,并非所有Unicode字符都能通过GSM_8编码传输。 阅读详情

相关推荐

短信编码转换实战:7bit转UCS2与8bit解码技术详解

是一个用于模拟和测试短信编解码行为的集成化工具包,广泛应用于通信协议调试、编码兼容性验证以及短信网关开发等场景。该压缩包通常包含脚本文件、可执行程序、测试用例样本及文档说明,旨在为开发者提供一个完整的端到端短信编码分析环境。解压后常见的目录结构如下所示:SmsTest/│├── src/ # 源码目录(Python/C++等)│ ├── encoder.py # 7bit/UCS2编码实现│ └── decoder.cpp # 解码逻辑核心模块│。

weixin_33608403的博客 948

7bit与8bit编码互相转换

7-bit编码压缩时,每个字符占用7位,它们被紧凑地打包在8-bit单元中。当将这些数据解码回8-bit时,我们需要按照7位的方式从每个字节中提取出相应的字符,并重建完整的8-bit编码。假设你提供了7-bit编码后的hello数据(7-bit压缩后的数据:0x68, 0x65, 0x6C, 0x6C, 0x6F),解码后将会还原出原始的"hello"字符串。

编程技术, 日益精进 1730

GSM Modem AT指令实现中英文短信发送

在本文中,我们深入探讨了GSM Modem及其AT指令集的核心应用,并针对中英文混合短信的编码和发送提供了详细的技术解析。我们通过分析不同的编码技术如7-bit、8-bit和UCS2编码,深入了解了短信发送与接收的技术细节。在短信管理模块的实现部分,我们不仅讨论了功能需求,还重点强调了性能优化和用户体验的提升。错误处理和日志记录章节中,我们详细介绍了常见错误类型、错误处理策略以及日志记录的重要性。在提升项目独立性和移植性的章节中,我们讨论了代码模块化、封装、移植性优化策略以及跨平台兼容性测试的重要性。

weixin_28931507的博客 1216

I2C基础知识

1、基础知识 1.1、I2C协议 I2C读设备步骤 开始信号 + 7位地址 + 1位写标志位 + 结束信号 开始信号 + 8位数据(读设备的地址) + 结束信号 开始信号 + 7位地址 + 1位读标志位 + 结束信号 开始信号 + 8位数据(读回的数据) + 结束信号 I2C写设备步骤 开始信号 + 7位地址 + 1位写标志位 + 结束信号 开始信号 + 8位数据(写设备的地址) + 结束信号 开始信号 + 7位地址 + 1位写标志位 + 结束信号 开始信号 + 8位数据(写设备的数据) + 结束信

kuosuoguang3325的博客 3964

ussd-pdu-text-converter:将GSM 7位USSD从PDU转换为文本,反之亦然

usd-pdu-text-converter 将GSM 7位USSD从PDU转换为文本,反之亦然。 安装 npm install ussd-pdu-text-converter 用法 ES6语法: import {UssdEncoderDecoder} from 'ussd-pdu-text-converter'; RequireJS语法: var UssdEncoderDecoder = require('ussd-pdu-text-converter'); 原料药 decodeAs7bitGSM(pdu:string) : string 要将7位GSM USSD PDU解码为文本,请执行以下操作: UssdEncoderDecoder.decodeAs7bitGSM('C8329BFD065DDF72363904'); 输出: Hello World encodeAs7

CharCoder,ascii,8 bit,7 bit,UCS2,UTF-8转码器

字符编码转换的工具(根据3GPP 03.38,11.11附录等协议),可以把字符转换成ascii,8 bit,7 bit,UCS2,UTF-8编码。 在做手机软件开发的时候,调试WMS,Phone book,STK等模块可能会用的到。

GSM短信息部分代码!(转---个人收藏)

1 #include "stdafx.h" 2 #include "Sms.h" 3 #include "Comm.h" 4 5 // 可打印字符串转换为字节数据 6 // 如:"C8329BFD0E01" --> {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} 7 // 输入: pSrc - 源字符串指针 8 //

Kernel Main的专栏 1776

从GSM7Bit到Unicode完全版

将GSM7Bit字符转化成Unicode字符,毫无遗漏

sms 7bit编码

关于短信内容格式及压缩方法今天研究了一下收发短信,8位编码转7位编码研究了半天,弄的一头雾水,最后还是在网上找到答案。 如下: 网短信压缩格式在TP-DCS中指示,TP-DCS在《GSM03.38》中有说明,一般都采用将7bit编码压缩成8bit编码方式,这种压缩方式也在《GSM03.38》中有详细说明。      压缩编码方式将8字节的7bit编码压缩成7字节的8bit编码,也就是说160字节

huangtonggao的专栏 6510

DS250DF410寄存器配置实战:从原理到调试的高速SerDes信号优化指南

在高速串行通信领域,SerDes(串行器/解串器)技术是实现芯片间高速数据传输的核心。其工作原理是通过时钟数据恢复(CDR)从串行数据流中提取时钟,并利用均衡技术补偿信道损耗。这项技术的核心价值在于突破PCB走线或电缆的带宽限制,确保在25Gbps及以上速率下数据的可靠传输。其应用场景广泛覆盖数据中心、高性能计算和通信设备中的高速背板、光模块及芯片互连。本文以TI的DS250DF410多通道重定时器为例,深入剖析其寄存器配置,特别是如何通过精细调控其自适应均衡器和眼图监测模块,实现对高速链路的信号整形与质量

aodiyi6351的博客 386

LLC谐振电路增益公式推导

LLC谐振电路增益公式理解

金凯*博客 1万+

AT指令发送PDU短信详解

AT指令发送PDU短信详解 分类: 单片机 2007-07-30 11:23 1904人阅读 评论(2) 收藏 举报 手机cmdstring工作360c  本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信: 接收号码:+8613602433649 短信内容:工作愉快! 短信中心号码:+8613800200500 一、短信中心号码处理:用字

254

B站充电视频下载器(需配合会员Cookie使用,仅供学习交流,Python)

这个程序是一个用于下载B站充电视频的工具,依赖于用户提供的会员Cookies。

qq_40753021的博客 2万+

7bit 编码

本文转自:http://hi.baidu.com/wenzheng38/item/6de009f9273e1f1fa72988e1 GSM默认采用7bit编码,实际上,7位编码是种压缩算法,因为,ASCII码(不包括扩展ASCII),其值小于0x80,最高位bit8是0,被忽略了;而7bit编码就利用了这一位来存储数据;其编码时,依次将下一7位编码的后几位逐次移至前面,形成新的8位编码。 1...

junmail的专栏 2200

MACS2软件进行Peak calling

MACS2可以检出ChIP-Seq,ATAC-seq 以及 MeRIP-seq (RNA甲基化测序) 等富集的序列。peaks calling 有不同的方法,MACS2是最常用的call peaks工具。 MACS全称Model-based Analysis of ChIP-Seq,最初的设计是用来鉴定转录因子的结合位点,但是它也可以用于其他类型的富集方式测序。usage: macs2 [-h] [--version] {callpeak,bdgpeakcall,bdgbroadca

qq_27390023的博客 3789

假新闻检测论文分享(17)CAFE(Cross-modal Ambiguity Learning for Multimodal Fake NewsDetection)

本文首先从信息论的角度对跨模态歧义性学习问题进行形式化描述,利用不同单模态特征之间的分布散度量化其歧义性;然后,提出了一种模糊度感知的多模态假新闻检测方法CAFE。CAFE通过自适应地聚合单模态特征和跨模态关联,即在跨模态歧义性较弱时依赖单模态特征,在跨模态歧义性较强时参考跨模态关联,从而提高假新闻检测精度。提出了跨模态歧义学习问题,这是多模态假新闻检测的一个关键挑战,并提出了一种基于KL散度的方法,通过估计其特征分布的散度来量化文本和图像之间的歧义。

weixin_41964296的博客 1724

GSM短信息部分代码!

山寨:不是最好的,是最适合我们的!欢迎体验山寨 中文版MSDN Blog @ Blog 当华美的叶片落尽,生命的脉络才历历可见。 -- 聂鲁达 导航 首页新随笔联系聚合管理 公告 留言簿(15) 给我留言查看公开留言查看私人留言 随笔分类(156) ATL COM(1) (rss)BUG分析(7) (rss)C#基础(3) (rss

azhangyi188的专栏 810

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制)

PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定

数据知道的博客 2625

PDU短信发送之六——个人项目实践

本人的一个项目中需要用到发送中文短信的功能,于是在前面几篇文章和代码的基础上,移植了我的代码。虽然代码中既有PDU编码和解码,但是我只用到了PDU编码,而没用PDU解码,对于文件中解码部分的代码没有验证。 PDU编码的函数族,经本人实际验证,没有问题! GsmSendPDU.h #pragma once //短信存储结构体 class PDU_Message { public:

luoyouren的专栏 2246

筑基篇第9节:CUDA内存管理API进阶

CUDA多维内存管理与零拷贝技术 本文介绍了CUDA中高效处理多维数据的内存管理技术。对于二维数据,使用cudaMallocPitch可确保内存对齐访问,提升75%的带宽利用率;三维数据则通过cudaMalloc3D实现切片对齐。配套的cudaMemcpy2D/3D函数能高效处理数据拷贝。此外,零拷贝内存技术允许内核直接访问主机内存,避免显存拷贝开销。这些技术对图像处理、科学计算等应用至关重要,能显著提升多维数据处理的性能。

PeterPan的博客 82

DBT关键切片重建算法

DBT通过有限角度(通常15°~50°)扫描,获取一系列低剂量投影图,重建出三维断层图像。传统FBP在稀疏角度下会产生严重的“伪影拖尾”和层间干扰。临床诊断中,放射科医生往往只关注几层关键切片(即病灶所在层),其余层仅作参考。

AI的内部世界的博客 89

C#PDU编码8BIT加密解密函数和短信GSM加密解密用到的不错的一个类

原文地址:http://www.wangchao.net.cn/bbsdetail_50338.html using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace SmsTest{    ///     /// By popcorn 2004.5。    ///

xqf222的专栏 3776

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Linux开发中GSM 中文短信 SMS PDU编码原理及实现

SMS是由Esti 所制定的一个规范(GSM 03.40 和 GSM 03.38)。有两种方式来发送和接收SMS消息:文本模式或者PDU(protocol description unit)模式。文本模式只能发送普通的ASCII字符,而要发送图片、铃声、其它编码的字符(如中文)就必须采用PDU模式。 PDU模式中,可以采用三种编码方式来编码要发送的内容,分别是 7-bit编码、8-bit编码...

hyshucom 333

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PDU 的编码

《转载》                                                                                                       SMS短信PDU编码                   目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Te

USEEKILLER的专栏 795
上一篇: c语言基础知识回顾
下一篇: MTK 文章收集
chuck_sun
博客等级 码龄16年 18粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值