2
According to Twilio,他們現在在其RESTful SMS界面中支持Unicode字符。然而,我不清楚我如何利用JavaScript中的這個優勢(這是在Node中)。如何在Twilio SMS請求中指定一個unicode消息正文?
當我使用西班牙語翻譯發送短信(默認爲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個字符的限制。
你說得對,有兩個問題埋在那裏。你的編碼答案有助於闡明一些東西 - 我用於轉換爲unicode的代碼片段需要34個字符併產生204個字符的unicode。 – Greg
由於您使用的是Javascript,因此用於Unicode的約定是前綴「/ u」後面跟着一個代表該字符的4位十六進制值,所以在Javascript中將使用6個字符來表示1個Unicode字符(34 x 6 = 204) 。但是,一旦它處於Twilio API中,Unicode對於每個字符應該仍然是16位。顯示消息時,Twilio API是否正確處理Javascript中的Unicode字符?它是否打破了70個字符的信息? –
Twilio API似乎並未將其識別爲Unicode - 這就好像字符先被計數一樣,因爲它由於長度而被API拒絕。 – Greg