encoding should be `utf8`