Подтвердить что ты не робот

Каков правильный метод вычисления заголовка Content-length в node.js

Я совсем не уверен, правильный ли мой текущий метод расчета длины содержимого. Каковы последствия использования string.length() для вычисления длины содержимого. Устанавливает ли кодировка utf-8 даже значение при использовании node.js?

payload = JSON.stringify( payload );

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

response.end( payload );
4b9b3361

Ответ 1

Заголовок Content-Length должен быть числом октетов в теле ответа. payload.length обозначает длину строки в символах. Некоторые символы UTF-8 содержат несколько байтов. Лучшим способом было бы использовать Buffer.byteLength(string, [encoding]) из http://nodejs.org/api/buffer.html. Это метод класса, поэтому вам не нужно создавать экземпляр Buffer.