Handle unicode conversion and normalization. On decoding errors uses auxiliary library (beautiful soup, chardet) to guess the encoding