如何在 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

lxy147258 回答:如何在 PDU 用户数据中添加填充

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/682673.html

大家都在问