**To Reproduce**
Code snippet to reproduce, ideally that will work by pasting into something like https://npm.runkit.com/axios, a hosted solution, or a repository that illustrates the issue. 

```js
const axios = require("axios")

const url = 'https://stackoverflow.com/questions';

const {headers} = await axios.head(url, {
  headers: {'accept-encoding': 'gzip, deflate, br'}
});
```
You can run this in one click here https://runkit.com/embed/eocb5097ds6r
 
**Expected behavior**
Don't crush

**Environment:**
 - Node.js any version

**Solution:**
It require trivial fix similar to https://github.com/axios/axios/pull/1129
lib/adapters/http.js
}
    if (data && !utils.isStream(data)) {
      if (Buffer.isBuffer(data)) {
        
      } else if (utils.isArrayBuffer(data)) {
        data = Buffer.from(new Uint8Array(data));
      } else if (utils.isString(data)) {
        data = Buffer.from(data, 'utf-8');
      } else {
        return reject(createError(
          'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',
          config
        ));
      }
      
      headers['Content-Length'] = data.length;
    }
    
    var auth = undefined;
    if (config.auth) {
      var username = config.auth.username || '';
      var password = config.auth.password || '';
      auth = username + ':' + password;
    }
    
    var fullPath = buildFullPath(config.baseURL, config.url);
    var parsed = url.parse(fullPath);
    var protocol = parsed.protocol || 'http:';
    if (!auth && parsed.auth) {
      var urlAuth = parsed.auth.split(':');