Multibyte characters on chunk boundaries get corrupted.

lib/core/dispatchRequest.js
/**
 * Dispatch a request to the server using the configured adapter.
 *
 * @param {object} config The config that is to be used for the request
 * @returns {Promise} The Promise to be fulfilled
 */
module.exports = function dispatchRequest(config) {
  throwIfCancellationRequested(config);
  
  config.headers = config.headers || {};
  
  config.data = transformData(
    config.data,
    config.headers,
    config.transformRequest
  );
  
  config.headers = utils.merge(
    config.headers.common || {},
    config.headers[config.method] || {},
    config.headers
  );
  utils.forEach(
    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
    function cleanHeaderConfig(method) {
      delete config.headers[method];
    }
  );
  
  utils.forEach(config.headers, function deleteNullValueHeaders(value, key) {