actually encode to UTF-8 when input charset is non UTF-8 + basic specs
explicit return for explicit explicitness