猿问

JavaScript字符串中有多少个字节?

从服务器以UTF-8发送时,我有一个大约500K的JavaScript字符串。如何用JavaScript判断其大小?

我知道JavaScript使用UCS-2,因此每个字符2个字节。但是,这取决于JavaScript实现吗?还是页面编码或内容类型?


PIPIONE
浏览 737回答 3
3回答

茅侃侃

String值不依赖于实现,根据ECMA-262第三版规范,每个字符代表UTF-16文本的单个16位单元:4.3.16字符串值字符串值是String类型的成员,并且是零个或多个16位无符号整数值的有限有序序列。注意尽管每个值通常代表UTF-16文本的单个16位单元,但是语言对这些值没有任何限制或要求,只是它们是16位无符号整数。

慕虎7371278

此函数将返回您传递给它的任何UTF-8字符串的字节大小。function byteCount(s) {    return encodeURI(s).split(/%..|./).length - 1;}JavaScript引擎可以在内部自由使用UCS-2或UTF-16。我知道的大多数引擎都使用UTF-16,但是无论他们做出什么选择,它只是实现细节,不会影响语言的特性。但是,ECMAScript / JavaScript语言本身会根据UCS-2(而不是UTF-16)公开字符。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答