must work on utf8 detection