从服务器以UTF-8发送时,我有一个大约500K的JavaScript字符串。如何用JavaScript判断其大小?我知道JavaScript使用UCS-2,因此每个字符2个字节。但是,这取决于JavaScript实现吗?还是页面编码或内容类型?
3 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
String值不依赖于实现,根据ECMA-262第三版规范,每个字符代表UTF-16文本的单个16位单元:
4.3.16字符串值
字符串值是String类型的成员,并且是零个或多个16位无符号整数值的有限有序序列。
注意尽管每个值通常代表UTF-16文本的单个16位单元,但是语言对这些值没有任何限制或要求,只是它们是16位无符号整数。
慕虎7371278
TA贡献1802条经验 获得超4个赞
此函数将返回您传递给它的任何UTF-8字符串的字节大小。
function byteCount(s) {
return encodeURI(s).split(/%..|./).length - 1;
}
JavaScript引擎可以在内部自由使用UCS-2或UTF-16。我知道的大多数引擎都使用UTF-16,但是无论他们做出什么选择,它只是实现细节,不会影响语言的特性。
但是,ECMAScript / JavaScript语言本身会根据UCS-2(而不是UTF-16)公开字符。
添加回答
举报
0/150
提交
取消