3

据 Twilio 称,他们现在在 RESTful SMS 界面中支持 unicode 字符。但是,我不清楚如何在 Javascript 中利用这一点(这是在 Node 中)。

当我发送带有西班牙语翻译(默认为 UTF-8)的 SMS 消息时,该消息将在收件人手机上被分割成三条消息。我猜根本原因是我需要在请求中发送一个 unicode 消息体。

如何将 Javascript 字符串转换为 unicode?我尝试过逐字翻译...

function toUnicode(theString) {
  var unicodeString = '';
  for (var i=0; i < theString.length; i++) {
    var theUnicode = theString.charCodeAt(i).toString(16).toUpperCase();
    while (theUnicode.length < 4) {
      theUnicode = '0' + theUnicode;
    }
    theUnicode = '\\u' + theUnicode;
    unicodeString += theUnicode;
  }
  return unicodeString;
}

...但这会产生一个被解释为比 160 个字符限制更长的消息正文。

4

1 回答 1

0

如果您以 Unicode 格式发送消息,则需要 16 位编码。SMS 中 16 位编码的限制是 70 个字符。这是因为 SMS 信令协议限制为 140 个八位字节,如果您使用 7 位编码,则转换为正常的 160 个字符。这是 SMS 协议的限制,而不是 Twilio。我不确定您的问题是如何发送 Unicode,或者为什么它会破坏我的信息。

于 2012-10-26T13:15:01.620 回答