Android smsManager 处理重音符号
Android smsManager handling Grave accent character
在我的 Android 短信应用程序中出现一些奇怪的行为,例如,当消息中有重音时; smsTEXT = "Pls call the office asap if you`re keen."
消息在单个 160 个字符的短信长度内,但是当我调用它时;
ArrayList<String> segments = smsManager.divideMessage(smsTEXT);
报告的消息部分数大于 1,实际上是 2
if (segments.size() > 1 ){
smsManager.sendMultipartTextMessage(etc...)
nSegments = segments.size();
} else {
smsManager.sendTextMessage(etc...)
nSegments = 1;
}
sendMultipartTextMessage
似乎在单个部分中完美地发送消息(带有重音),而在所有其他方面该应用程序运行良好
如果我用撇号替换重音符号,则 size() 仅报告一条单段消息,而 sendTextMessage
一次发送一条短信
如果我在消息中加入多个重音符号,size() 最多会报告 4 个片段,尽管看起来 sendMultipartTextMessage
只发送一条短信
问题:Android smsManager
..中的重音有什么特别之处吗?
不能用 7 位 ascii(SMS 的默认设置)表示严重。这就要求它以 16 位字符的形式发送,这将最大字符数减少了一半。因此,即使是一条短消息也需要 2 条 SMS。您会看到表情符号和其他 non-ASCII 字符的相同行为。如果您查看在 Android 等消息应用程序中发送短信,显示文本中剩余的字符,您会发现只要添加 non-ASCII 个字符,它就会减半(或者,如果将它放在文本中间,您会看到文本数量猛增)。
在我的 Android 短信应用程序中出现一些奇怪的行为,例如,当消息中有重音时; smsTEXT = "Pls call the office asap if you`re keen."
消息在单个 160 个字符的短信长度内,但是当我调用它时;
ArrayList<String> segments = smsManager.divideMessage(smsTEXT);
报告的消息部分数大于 1,实际上是 2
if (segments.size() > 1 ){
smsManager.sendMultipartTextMessage(etc...)
nSegments = segments.size();
} else {
smsManager.sendTextMessage(etc...)
nSegments = 1;
}
sendMultipartTextMessage
似乎在单个部分中完美地发送消息(带有重音),而在所有其他方面该应用程序运行良好
如果我用撇号替换重音符号,则 size() 仅报告一条单段消息,而 sendTextMessage
如果我在消息中加入多个重音符号,size() 最多会报告 4 个片段,尽管看起来 sendMultipartTextMessage
只发送一条短信
问题:Android smsManager
..中的重音有什么特别之处吗?
不能用 7 位 ascii(SMS 的默认设置)表示严重。这就要求它以 16 位字符的形式发送,这将最大字符数减少了一半。因此,即使是一条短消息也需要 2 条 SMS。您会看到表情符号和其他 non-ASCII 字符的相同行为。如果您查看在 Android 等消息应用程序中发送短信,显示文本中剩余的字符,您会发现只要添加 non-ASCII 个字符,它就会减半(或者,如果将它放在文本中间,您会看到文本数量猛增)。