我不确定我目前计算内容长度的方法是否正确。使用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 );
答案 0 :(得分:49)
Content-Length标头必须是响应正文中的八位字节数。 payload.length
是指以字符为单位的字符串长度。某些UTF-8字符包含多个字节。更好的方法是使用http://nodejs.org/api/buffer.html中的Buffer.byteLength(string, [encoding])
。这是一个类方法,因此您不必创建任何Buffer实例。