tokenizer
When moving to the next character, we have to consider that the current one might be multi-byte.