jQuery gets this correct: `$.fn.attr` treats its input as text, whereas `$` treats its input as HTML.

```javascript
> $('<div title="foo &amp; bar">').attr('title')
'foo & bar'
> $('<div>').attr('title', 'foo & bar').attr('title')
'foo & bar'
> $('<div>').attr('title', 'foo &amp; bar').attr('title')
'foo &amp; bar'
```

cheerio should behave the same way.