Fix char escape bug

E.g., '\^A' is supposed to be '\1', not '\0'. (Also, '\0' is '\^@'.)

Parsec has this bug too, FWIW (maybe that's why it's here too?), but it seems everyone else forgot about it...