检查SMS消息是否在标准GSM字母表中

时间:2013-04-10 08:43:12

标签: c# unicode sms

我正在使用API​​发送短信,我需要计算短信中的短信数量。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

享受