Well right now it isn't strict, which offends me a bit. You should throw if any encoded char is not in `[0...127]`.