微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 PDU 用户数据中添加填充

如何解决如何在 PDU 用户数据中添加填充

我正在创建一个以 PDU 模式发送连接消息的程序。但是我得到了垃圾字符,当我在消息前添加 00 时,我得到 @ 或 ? 符号。 我用这个网站作为指南https://techsofar.com/combining-sms-messages/

我使用了相同的文本(lorem ipsum)并使用了我拥有的 GSM 7 位编码器,但与网站上的相比,它们的十六进制结果不同。

Lorem ipsum dolor sat amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco Laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。例外 sint occaecat cupidatat non proident,sunt in culpa qui offcia deserunt mollit anim id est labum.

我想修改我在 stackoverflow 中复制的这段代码解决填充问题,但我不知道在哪里修改

文本转 GSM7 编码器

public static string Encode7bit(string s)
        {
            string empty = string.Empty;
            for (int index = s.Length - 1; index >= 0; --index)
                empty += Convert.ToString((byte)s[index],2).PadLeft(8,'0').Substring(1);
            string str1 = empty.PadLeft((int)Math.Ceiling((Decimal)empty.Length / new Decimal(8)) * 8,'0');
            List<byte> byteList = new List<byte>();
            while (str1 != string.Empty)
            {
                string str2 = str1.Substring(0,str1.Length > 7 ? 8 : str1.Length).padright(8,'0');
                str1 = str1.Length > 7 ? str1.Substring(8) : string.Empty;
                byteList.Add(Convert.ToByte(str2,2));
            }
            byteList.Reverse();
            var messageBytes = byteList.ToArray();
            var encodedData = "";
            foreach (byte b in messageBytes)
            {
                encodedData += Convert.ToString(b,16).PadLeft(2,'0');
            }
            return encodedData.toupper();
        }

最终连接的 PDU 字符串输出

CMGS = 153> 0041010B819021436587F90000A00500033F0301CCB7BCDC06A5E1F37A1B447EB3DF72D03C4D0785DB653A0B347EBBE7E531BD4CAFCB4161721A9E9E8FD3EE33A8CC4ED359A079990C22BF41E5747DDE7E9341F4721BFE9683D2EE719A9C26D7DD74509D0E6287C56F791954A683C86FF65B5E06B5C36777181466A7E3F5B00B54A583CAEE741B142683DA6977BA0DB297DDE9709B058AD7D373

CMGS = 153> 0041020B819021436587F90000A00500033F030220F77B4E97D7C9A032BE2C1FA7E9617AFAED06D5D9EC707BFC06B1C3E2B73C3D07B9D3F334A84E0785D9E9783D0D0795F1A07218347EB7DB6FF21B347EBBE7E5783D4C778188F5F41C14AED3CBA0B4BC2E2F83C86FF65B0E4ABB41F2325C5E4697DDE4B23C4D07A5DD20FB9B5D87D3C3F432C85E66A7E9A0F27C5E068DD36C76BD0D22BFD96F

CMGS = 140> 0041030B819021436587F90000910500033F0303F232A85C0799EBE774980E72D7D9EC30081E96A7C3F4BADC052AE2C76538BD5C9783E669371DF41E8FC3E571980E1AD7E16972981EA683DC6F37082E7FA7C965379D059AD7DD7450DA0D1AD7D9F030285E4F83DE66737A9C0E83C8E579595E77D341ED379B9DA683C2EE741B942683CA733A881D16BFE5F536

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。