Fold All / Expand All

2017年3月12日 星期日

[Node.js] 計算正確的 Content-Length

https://nodejs.org/api/buffer.html#buffer_class_method_buffer_bytelength_string_encoding

破題,用 Buffer.byteLength()

在 JS,因為 String.prototype.length 回傳的是字串長度,而不是實際有幾個 byte

例如「你好」的 length 會是 2,但是 utf-8 encoding 的話,會是 6

在 HTTP 的 Content-Length 是要看幾個 byte,所以要用 Buffer.byteLength('你好', 'utf-8') 才能拿到正確的值

是說現在因為用 http.createServer() 自己刻,才會有這問題吧,搭配一些 framework 應該就不會遇到?

沒有留言: