4G 中文短信内容解析

用Text模式接收中文短信,AT+CMGF=1

+CMTI: "ME",52
AT+CMGR=52

+CMGR: "REC UNREAD","+8613861512345",,"23/07/27,14:22:08+32"
6D4B8BD577ED4FE100310032003300340035

OK

接收到的一串Unicode字符串,怎么翻译成中文,

6D4B8BD577ED4FE100310032003300340035

百度上搜了一堆Unicode转中文的在线工具,用不了

需要再每个Unicode之前加\u,才能使用\u6D4B\u8BD5\u77ED\u4FE1\u0031\u0032\u0033\u0034\u0035

翻译出来   “测试短信12345”

用C#写了一个测试代码,就可以直接翻译出来了

namespace ConsoleApp5
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string strInput  = "6D4B8BD577ED4FE100310032003300340035";
            string strResult = "";
            int Length = strInput.Length;

            byte[] cBuff = new byte[Length / 2];
            for (int i = 0, j = 0; i < Length; i += 2, j++)
            {
                cBuff[j] = Convert.ToByte(strInput.Substring(i, 2), 16);
            }

            // 解码成汉字
            strResult = Encoding.GetEncoding("UnicodeFFFE").GetString(cBuff);
            Console.WriteLine(strResult);

            Console.Read();
        }
    }
}

在Java中实现4G短信Modem通讯通常涉及几个步骤: 1. **硬件连接**:首先,你需要一个支持4G数据通信功能的Modem模块,并通过串口或USB接口将其连接到计算机。一些高级Modems可能有专用的驱动程序或SDK提供给开发者。 2. **API或库**:利用制造商提供的驱动程序(如AT指令集),或者第三方库,如JSMS (Java SMS API) 或者 Open Modem API,它们可以帮助处理底层的通信协议,例如AT指令。 3. **软件编程**:在Java应用程序中,通过`SerialPort`、`PipedInputStream/PipedOutputStream`或类似机制来发送和接收数据。编写代码来构建命令行请求(比如发送短信的“AT+CMGF=1”和“AT+CMGS”等),读取响应,以及解析短信状态信息。 4. **短信编码和解码**:发送的数据通常需要编码成特定格式,比如SMSC的七位号码和短信内容,然后通过AT指令发送。收到短信时,也需要解码并处理返回的结果。 5. **错误处理**:由于网络不稳定性和Modem响应延迟,务必添加适当的错误检测和重试机制。 ```java // 示例代码片段 try { SerialPort port = new SerialPort("COM1", 9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); port.open(); OutputStream outputStream = port.getOutputStream(); outputStream.write("AT+CMGF=1".getBytes(StandardCharsets.US_ASCII)); // 发送文本模式 InputStream inputStream = port.getInputStream(); byte[] response = new byte[256]; int readBytes = inputStream.read(response); // 接收响应 // ...后续处理短信发送结果... } catch (Exception e) { e.printStackTrace(); }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值