IIRC we should also check that the char is a single byte one.

Two options:
 - Either check it at the `CommitOptions` level (but I feel weird about throwing in a setter)
 - Or check it at this level and throw an `InvalidOperationException` with an explicit message

/cc @ethomson @carlosmn