Perhaps you should use codes that don't contain letters? With Unicode, that still gives you thousands of possibilites for each position. That way, you satisfy both conditions at once: the codes will be short (shorter than ASCII only codes), and it's unlikely to offend someone.