如果收到的消息只包含单词,则没有问题。但是,当信息中包含表情符号和文字时,信息就无法被理解。我认为它是某种形式的另一种格式。
例如,如果来自发送者的消息是";你好"和一个微笑,它将显示为";00480065006C006F0020D83DDE00";在我的C#应用程序中。
我以文本模式阅读消息;AT+CMGF=1";。我觉得解决方案是用";AT+CMGF=0";(非文本模式(以覆盖所有类型的消息,并应用算法进行解码。这样做吗?
我遇到的大多数关于表情符号的帖子都给出了关于发送表情符号的解决方案。我似乎找不到接收的解决方案。
从文本来看,它似乎是Big Endian Unicode:
// https://stackoverflow.com/a/311179/613130
public static byte[] StringToByteArray(string hex)
{
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < hex.Length; i += 2) {
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
}
return bytes;
}
然后:
var bytes = StringToByteArray("00480065006C006C006F0020D83DDE00");
var text = Encoding.BigEndianUnicode.GetString(bytes); // Hello 😀