import 'package:characters/characters.dart';
void main() {
final originalString = '\u{1F336}\uFE0F' * 3; // 🌶️🌶️🌶️
const ellipsis = '\u2026';
for (var i = 1; i < 4; i += 1) {
var s = originalString;
var characters = s.chararacters;
if (characters.length > i) {
s = '${characters.take(i)}$ellipsis';
}
print(s);
}
}
2条答案
按热度按时间4ioopgfo1#
你可以使用“flutter_string_encoding”库,它提供了显示宽度方面的字符串宽度计算,考虑了像emoji这样的全角字符。
f87krz0w2#
您应该使用
package:characters
,并根据graphemes(人类感知的字符)而不是根据(UTF-16)代码单元截断字符串。其打印: