我有smpp直接连接到SMSC提供商,我遇到问题,当我用charset iso88591发送长英文消息时,移动接收它仅削减134个字符,虽然我正在将消息分成几个部分,然后发送正确的UDH每个部分。
所以当我使用charset 7bit时,我会遇到像@ $&替换为问号,但长信息恢复完成并连接正确。
如何解决这个问题?
答案 0 :(得分:2)
从技术角度来看,SMS本身是信令半双工信道中1120位长的固定大小的比特阵列。可以解释为160个7位字符(x 7 = 1120)或140个八位字节(x 8 = 1120)或70个UCS2(x 16 = 1120)。如果使用消息串联,则可用容量将减少UDH标头的大小。
GSM网络中的默认字母表遵循GSM 3.38标准(正如我在您对另一个问题的评论中所写的那样)。
我所遇到的情况是,GSM网络对英语文本使用7位编码而对另一种语言使用UCS2,而8位编码仅用于二进制数据,例如对于GSM银行等加密数据包...
对于英文文本,我们一直使用7位编码,翻译ASCII 7< - > GSM 3.38我会说这是正确的方法。
但我们从未在中间使用过第三方软件:我们总是使用现场使用的少数协议直接与SMSC交谈。