3

我正在使用 API 发送 SMS,我需要计算消息中的 SMS 数量。

如果消息仅使用GSM 字母字符,则长度最多为 160 个字符,但如果消息包含此字母表之外的任何字符,它将被编码为 Unicode (UCS-2),然后最多只能有 70 个字符一条短信中的字符。当发送连接的,即多部分消息时,每个部分的长度分别最多只能为 153 或 67 个字符。

我正在使用 C# 发送消息,如何检查消息是否仅包含 GSM 字母字符?

4

1 回答 1

2

你可以用一个非常可怕的正则表达式来做到这一点。这是一个扩展方法。

public static bool IsUnicodeSms(this string message)
{
    var strMap = new Regex(@"^[@£$¥èéùìòÇØøÅå_ÆæßÉ!""#%&'()*+,-./0123456789:;<=>? ¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà^{}\[~]|€]+$");
    return !strMap.IsMatch(message);
}

享受

于 2014-12-19T11:54:10.397 回答