问题描述
我正在开发一个应用程序,该应用程序使用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 (将#修改为@)