【问题标题】:What is the correct method for calculating the Content-length header in node.js在 node.js 中计算 Content-length 标头的正确方法是什么
【发布时间】:2013-07-29 04:00:23
【问题描述】:

我完全不确定我当前计算内容长度的方法是否正确。使用 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 );

【问题讨论】:

标签: javascript node.js utf-8 express


【解决方案1】:

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

【讨论】:

  • 这为我解决了一个问题,即通过 responseBody.length 计算的内容长度与响应中给出的内容长度标头相比相差 1。
猜你喜欢
  • 2021-01-08
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2017-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多