The ROT8000 cipher, for when ROT13 just isn't enough letters

Rot8000 is the unicode equivalent of Rot13, a formal version of the classic Ceasar Cipher in which messages are encrypted by cycling the characters half-way through the given alphabet. By cycling them half-way again, you get back to the original message. Daniel Temkin's implementation works very well.

While rot13 is the self-inverse for a 26-character system, and rot47 for ANSI, the Basic Multilingual Plane of Unicode requires rot32768 (or 8000 in hex) for a reciprical cypher — meaning that executing it twice restores the original text. It also bypasses 32 control characters, technically making it rotFFE0, sometimes with an additional offset.

The bonus, beyond the much larger inventory of characters that can be encoded, is that results generally end up using the glyphs of a different language. Depending on context—and the linguistic abilities of presumed observers—it'll be less conspicuous as ciphertext. I wonder if there are downsides hiding in unicode/emoji features like combining characters and punycode that may "break" output or otherwise confound the copy/paste behavior needed for the return trip.