总所周知,我们在做字符串截取的时候,可以通过
String.subString(index, len)
但是如果string中包含字母、数字、中文、表情,那么通过上述方式就会出现截取到半个表情,这在ios解析会导致解析失败,因为我们可能需要截取完成的一个字符。
Strig.codePointCount(startIndex, endIndex)
提供了获取字符串完整字符的长度,字母、数字、中文、表情都算一个,比如
helloWorld = 9
你好=2
😔😓 = 2
222 = 3
所以截取的时候可以用另外一种方式去截取完整字符
String.offsetByCodePoints(startIndex, codePointOffset)
其中offset表示多少字符。
例子
String subContent = content.substring(pushContent.offsetByCodePoints(0, 0), pushContent.offsetByCodePoints(0, subLength)) + "...";