Today I learnt that null bytes are valid in UTF-8 and ASCII strings! It was a surprise -- \0 doesn't feel like text -- but it'd be even more awkward when using C-style strings.