如何在Twilio SMS请求中指定unicode消息正文?

时间:2012-10-25 18:43:46

标签: javascript unicode twilio

According to Twilio,他们现在支持RESTful SMS界面中的unicode字符。但是,我不清楚如何在Javascript中使用它(这是在Node中)。

当我发送带有西班牙语翻译的SMS消息(默认为UTF-8)时,该消息将被切换为收件人电话上的三条消息。我猜测根本原因是我需要在请求中发送一个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个字符的限制更长。

1 个答案:

答案 0 :(得分:0)

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