Use character (not byte) lengths in event payloads

len() returns byte lengths, which isn't want we want for Unicode strings