从C#应用程序发送的SMS编码问题

问题描述

我正在开发一个应用程序,该应用程序使用c#后端和gsm调制解调器发送SMS。该应用程序运行良好,但是我遇到了一些问题,即包含特殊字符的法语文本和阿拉伯语文本未正确编码。 这是相应的代码

 public static bool Send(SerialPort serialPort,Message message)
    {
        serialPort.WriteLine("AT" + Environment.NewLine);
        Thread.Sleep(100);
        serialPort.WriteLine("AT+CMGF=1" + Environment.NewLine);
        Thread.Sleep(100);
        serialPort.WriteLine("AT+CSCS=\"GSM\"" + Environment.NewLine);
        Thread.Sleep(100);
        serialPort.WriteLine("AT+CMGS=\"" + message.PhoneNumber + "\"");
        Thread.Sleep(100);
    
        serialPort.WriteLine(message.MessageBody);
        Thread.Sleep(100);

        serialPort.Write(new byte[] { 26 },1);
        Thread.Sleep(100);

        var response = serialPort.ReadExisting();

        return !response.Contains("ERROR");
    }

我试图像这样将serialPort的认编码更改为UTF8:

         Encoding utf8 = Encoding.UTF8;
         serialPort.Encoding = utf8;
         byte[] utf8Bytes = serialPort.Encoding.GetBytes(message.MessageBody);
         message.MessageBody = serialPort.Encoding.GetString(utf8Bytes);

但是我仍然有相同的问题,因此如果问题出在编码系统中,我想知道要使用哪个编码系统。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)