JavaScript中字符串长度(以字节为单位

JavaScript中字符串长度(以字节为单位

在我的JavaScript代码中,我需要以这种格式向服务器撰写消息:

<size in bytes>CRLF<data>CRLF

例:

3foo

数据可能包含unicode字符。我需要将它们作为UTF-8发送。

我正在寻找最流行的浏览器方式来计算JavaScript中字符串的长度(以字节为单位)。

我试过这个来组成我的有效载荷:

return unescape(encodeURIComponent(str)).length + "\n" + str + "\n"

但它没有给我准确的结果旧浏览器(或者,这些浏览器中的字符串可能是UTF-16?)。

有线索吗?

更新:

示例:ЭЭХ! Naïve?UTF-8中字符串的长度(以字节为单位)为15个字节,但某些浏览器报告的是23个字节。


慕容森
浏览 625回答 3
3回答

互换的青春

多年过去了,现在你可以做到这一点(new&nbsp;TextEncoder('utf-8').encode('foo')).length请注意,IE(或Edge)尚不支持它(您可以使用polyfill)。MDN文档标准规格
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript