goJsonLength function
与 Go 的 encoding/json 输出相同的字节数:jsonEncode 的结果中 U+2028、U+2029、<、>、& 在 Go 中被转义为 6 个字节 (《sdk-web/2.功能概述文档》第 6.5、19 节)。
Implementation
int goJsonLength(String json) {
var extra = 0;
for (var i = 0; i < json.length; i++) {
final c = json.codeUnitAt(i);
if (c == 0x2028 || c == 0x2029) extra += 3; // UTF-8 的 3 字节换成 6 字节
}
return utf8Length(json) + extra;
}