ROT13: good version
qntm.org
qntm.org
Ok so this doesn't really matter for a joke algorithm like ROT13 but in more serious cases it's important to refuse any inputs that aren't handled and not try ad-hoc fixes to make them "work".
Besides, I was honestly just using this as an excuse to make a more general point. I've grown frustrated with bugs and security issues arising from "fixing" input to work in a domain which was not designed to handle that input.
But as I said, it doesn't really matter with ROT13 because it isn't a serious algorithm.
Depends on what you use it for. I've seen it used for "spoilers" text when other tricks were not available.
BTW it is funny that Caesar's cypher cannot handle "Latin" characters.
In this story, ROT13 is taken seriously, so it is a serious algorithm. And the creation of such a good version does have it’s value, no matter how useful ROT13 is.
Btw what's commonly known as Caesar cipher (aka shift cipher) is a generalisation of Caesar's original cypher (described as shifting each character 3 places). ROT13 is different from the "original" as it shifts by 13 characters over a 26 character alphabet. This makes the encode and decode steps the same.
You can play with different alphabets and shifts here: https://crypto.interactive-maths.com/caesar-shift-cipher.htm...
Rot13 is not defined for characters outside [a-zA-Z].
Now, rot13 excludes punctuation and keeps capitalization after transform, so an ordinary human can learn to read rot13 English reasonably fluently. I don't know if that is common across all Latin-descended alphabetic languages, but it's really not going to be a plausible skill in Mandarin.
https://en.wikipedia.org/wiki/Chinese_characters#Indexing is somewhere between horrifying and fascinating.
On the other hand, Korean (Hangul) has a perfectly reasonable alphabetic set size and ordering, at least in South Korea. https://en.wikipedia.org/wiki/Hangul#Alphabetic_order -- so I expect that Koreans can learn to read rot12.
Ah, so, when you said "øbol comes through as øoby" you were saying that this is the correct behaviour?
Because rot13 is not defined for a lot of possible inputs, different implementations can produce different results, and not be interoperable.
[1] - http://rot8000.com