I'm having a hard time following the responsibilities of the charset conversion. In some cases, we `preprocess` and in others we just `encode`.

Is this a matter of needing clearer method names?