The more you understand about Unicode the more you understand how profoundly broken this is http://rot8000.com/Index
-
Show this thread
-
I actually ran into this exact problem once before. For the purposes of "SCP-3125" I wanted to make it so that readers couldn't just hit "View source" to see the hidden content of the page. At first I used a Vigenère cipher, which works fine on English text. But then, translation
1 reply 0 retweets 7 likesShow this thread -
Vigenère ciphers (of which Caeser ciphers such as ROT-13 are a special case) have no effect on Japanese text. So I needed to come up with something analogous which could be applied to all Unicode text
1 reply 0 retweets 8 likesShow this thread -
But you can't just naïvely rotate Unicode code points. That rotation can lead to unassigned code points, or invalid ones. What about combining characters? Normalization of the output can cause data corruption. So can whitespace flattening
1 reply 0 retweets 8 likesShow this thread -
In the end I used a dumb solution, which was to percent-encode the input and *then* apply the Vigenère cipher to the percent-encoded input. The result looks a little ridiculous, but it was definitely illegible and 100% reversible, which was the important part
1 reply 0 retweets 9 likesShow this thread -
And while I'm at it, can everybody *please* remember to NFD-normalize your strings prior to ROT-13. "Naïveté" should become "Anv̈irgŕ", not "Anïirgé". Otherwise, if the encoded text does get normalized in transit, it'll decode incorrectly to "Nav̈vetŕ"
2 replies 6 retweets 27 likesShow this thread
This means you, https://rot13.com/ , you piece of junk
-
-
You know what? Here's a ROT13 implementation which handles combining characters properly https://qntm.org/files/rot13/rot13.html …
0 replies 5 retweets 11 likesShow this threadThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.