编码SMS消息

时间:2014-07-25 07:13:53

标签: php encoding character-encoding sms

我目前正在构建一个使用Nexmo向用户发送短信的应用程序。 但我遇到了一些消息编码问题。 可能值得一提;我正在使用prawnsalad/Nexmo-PHP-lib library来连接他们的API。

160个字符的简单文本消息分为3个单独的消息。根据Nexmo的支持,这是由消息的编码引起的。因此,为了向我提供更多信息,我收到了有关编码的以下信息:

  

每封邮件的最大字符数取决于编码:    - 用于7位编码的160个字符(例如Latin-1/9和GSM8)    - 用于8位编码的140个字符(二进制)    - 用于16位编码的70个字符(Unicode)

     

每个连接消息的最大字符数取决于   编码:    - 7位编码的153个字符(例如Latin-1/9和GSM8)    - 用于8位编码的134个字符(二进制)    - 16位编码的67个字符(Unicode)

当我使用7BIT编码( mb_convert_encoding('message','7bit'))时,整个消息将作为单个文本消息发出...但是“é”,“è等字符“,”“”,“ù”将从邮件中删除。 必须有一种方法来包括这些字符,仍然发送消息为1消息,而不是3 ..对吗?但是如何?

我真的希望有人可以帮助解决这个问题,即使是Nexmo的支持也从这个编码问题中退了一步:p

1 个答案:

答案 0 :(得分:2)

不幸的是,这些字符不包含在GSM8编码中,这里详细解释了这一点:http://www.clockworksms.com/blog/the-gsm-character-set/

如果您需要使用这些字符,则无法绕过8位编码,因此字符更少。

如果您的手机上的短信显示当前的字符使用情况,那么当您使用GSM8编码中未包含的字符时,字符数会发生巨大变化,也会发生同样的情况。