I must admit there is nothing useful on those headers :)

`body_as_str` is only used in `scrapy.utils.iterators`, I am temped to move it there as a private function.

And in that case may be assume UTF-8 in case of unknown encoding for `Response`. 

Another option is to retry detection based on body content with `responsetypes.from_args(body=response.body)`, I am not sure why this is not done in http handlers.