我一直在使用SMS聚合器的web api来发送和接收短信。并非所有字符都有效,当我尝试发送带有哈希标记#的消息时,它会失败。
我需要在发送之前清理字符串,但是找不到有效字符的有效列表。谷歌先生没有多大帮助 - 也许我正在寻找错误的条款。
我已经浏览了api手册,并通过电子邮件向我公司提问,但没有答案。
我希望不同的手机可以处理不同的角色列表......例如,iPhone应该可以处理各种各样的角色,但是我的旧诺基亚翻盖手机可能只会处理字母数字以外的几十个字符。我需要最低的共同点。
答案 0 :(得分:13)
这完全取决于@ vissi的答案,但如果您想在应用程序中构建一个小型集合以进行验证,则应该能够插入这些内容。
// Standard Latin Characters
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
// Numbers
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
// Punctuation
'!', '#', ' ', '"', '%', '&', '\'', '(', ')', '*', ',', '.', '?',
'+', '-', '/', ';', ':', '<', '=', '>', '¡', '¿', '_', '@',
// Currency
'$', '£', '¥', '\u00A4', // [UNTYPED] CURRENCY SIGN
// Accented Characters
'è', 'é', 'ù', 'ì', 'ò', 'Ç', 'Ø', 'ø', 'Æ', 'æ', 'ß', 'É', 'Å',
'å', 'Ä', 'Ö', 'Ñ', 'Ü', '§', 'ä', 'ö', 'ñ', 'ü', 'à',
// Greek Characters
'\u0394', // GREEK CAPITAL LETTER DELTA
'\u03A6', // GREEK CAPITAL LETTER PHI
'\u0393', // GREEK CAPITAL LETTER GAMMA
'\u039B', // GREEK CAPITAL LETTER LAMBDA
'\u03A9', // GREEK CAPITAL LETTER OMEGA
'\u03A0', // GREEK CAPITAL LETTER PI
'\u03A8', // GREEK CAPITAL LETTER PSI
'\u03A3', // GREEK CAPITAL LETTER SIGMA
'\u0398', // GREEK CAPITAL LETTER OMEGA
'\u039E', // GREEK CAPITAL LETTER XI
// Other Miscellaneous Characters
'\u001B', // ESCAPE
'\n', // NEW LINE or LINE FEED
'\r' // CARRIAGE RETURN
答案 1 :(得分:10)
这取决于您的聚合器。 Default sms charset仅限于拉丁语和一些特殊字母(包括哈希标记),其他字符仅以unicode或使用锁定移位表机制发送。但是你使用api发送消息,因此所有这些都被封装了。我建议继续向你的聚合器寻求帮助,可能是他们手动阻止了一些字符。