36

我完全不确定我当前计算内容长度的方法是否正确。使用 string.length() 计算内容长度的含义是什么。使用 node.js 时将字符集设置为 utf-8 是否意味着什么?

payload = JSON.stringify( payload );

response.header( 'content-type', application/json; charset=utf-8 );
response.header( 'content-length', payload.length );

response.end( payload );
4

1 回答 1

63

Content-Length 标头必须是响应正文中的八位字节数。payload.length指以字符为单位的字符串长度。一些 UTF-8 字符包含多个字节。更好的方法是Buffer.byteLength(string, [encoding])使用http://nodejs.org/api/buffer.html。它是一个类方法,因此您不必创建任何 Buffer 实例。

于 2013-07-29T11:37:31.403 回答