在我的JavaScript代码中,我需要以这种格式向服务器撰写消息:
<size in bytes>CRLF
<data>CRLF
Run Code Online (Sandbox Code Playgroud)
例:
3
foo
Run Code Online (Sandbox Code Playgroud)
数据可能包含unicode字符.我需要将它们作为UTF-8发送.
我正在寻找最流行的浏览器方式来计算JavaScript中字符串的长度(以字节为单位).
我试过这个来组成我的有效载荷:
return unescape(encodeURIComponent(str)).length + "\n" + str + "\n"
Run Code Online (Sandbox Code Playgroud)
但它没有给我准确的结果旧浏览器(或者,这些浏览器中的字符串可能是UTF-16?).
有线索吗?
更新:
示例:???! Naïve?UTF-8中字符串的长度(以字节为单位)为15个字节,但某些浏览器报告的是23个字节.