ROT47 Encoder Decoder
Encode or decode printable ASCII with the self-inverse ROT47 substitution while preserving spaces, line breaks and every non-ASCII character.
Privacy: your files never leave your device. All processing happens locally in your browser.
How to use
- 1.Paste the exact text you want to transform; spaces and non-ASCII characters will be preserved.
- 2.Select Apply ROT47 and copy the resulting printable-ASCII substitution.
- 3.To decode, paste the ROT47 output and apply the same operation once more.
About ROT47 Encoder Decoder
ROT47 Encoder Decoder applies the ROT47 character substitution to text in your browser. It rotates each printable ASCII character from exclamation mark through tilde by 47 positions. The same action encodes and decodes, so there is no separate mode to choose and no key to remember.
Printable ASCII contains 94 characters in the code-point range 33 through 126. Rotating by exactly half of that range pairs every supported character with another character. Applying the operation twice moves each value through 94 positions and returns the original. That self-inverse property is why one Apply ROT47 button handles both directions.
Unlike ROT13, which changes only English letters, ROT47 transforms uppercase letters, lowercase letters, digits and punctuation. A comma, bracket, number or symbol can therefore change along with words. Space is code point 32 and falls outside the rotation range, so word spacing remains visible. Tabs and line breaks also remain untouched.
Non-ASCII characters are preserved exactly. Accented letters such as é, CJK text and emoji are not forced into ASCII or broken into UTF-16 halves. The implementation iterates Unicode code points, checks each value against the narrow printable ASCII interval and copies everything outside that interval without normalization.
The transformation is deterministic and position preserving. It does not reorder characters, change the number of supported code points or add framing. If a string contains ten printable ASCII characters, the output contains ten rotated characters in the same positions. Mixed text retains the same whitespace and non-ASCII segments around them.
ROT47 is an encoding puzzle, not encryption. It has no secret key, and anyone who recognizes the pattern can reverse it immediately by applying ROT47 again. It provides no confidentiality, integrity, authentication or resistance to frequency analysis. Never use it to protect credentials, personal information or sensitive messages.
Because punctuation is transformed, the result may include characters with special meaning in URLs, HTML, shells, regular expressions or markup. Copying output into another syntax without escaping can change how that receiving system interprets it. This page returns plain text and does not claim that the output is safe for any programming or transport context.
Input is limited to 200,000 Unicode code points to keep interactive conversion and copying responsive. Empty text is rejected because it produces no useful transformation. Aside from that limit, the tool preserves leading and trailing whitespace and does not trim, normalize, collapse or detect language.
Eight fixed examples cover words, mixed case, numbers, punctuation, spaces, an accented character and emoji. Each fixture is checked in both directions. Additional tests assert that tabs, newlines and non-ASCII content stay unchanged. The self-inverse assertions help expose incorrect ranges and off-by-one arithmetic.
To encode, paste the exact text and select Apply ROT47. Copy the generated result. To decode, paste a ROT47 string into the same field and apply the operation once. If a copied result does not recover correctly, verify that the intermediary did not escape punctuation, convert smart quotes or alter line endings.
ROT47 is useful for light spoiler masking, classroom demonstrations, reversible forum puzzles and testing character-handling pipelines. Its output is intentionally obvious to informed readers. If your goal is merely to make a phrase less immediately readable, it can be convenient; if your goal is secrecy, it is the wrong tool.
The page states its exact interval because similarly named implementations can make different preservation choices. Here the behavior is fixed: code points 33–126 rotate by 47, code point 32 and all values outside that interval are copied. That small rule is enough to reproduce every result independently.
Methodology & sources
For every Unicode code point, values from ASCII 33 through 126 are mapped to 33 + ((value - 33 + 47) modulo 94). Space, control characters and non-ASCII values are copied unchanged. The mapping is self-inverse.
Frequently asked questions
Related tools
- ROT13 Encoder DecoderApply reversible ROT13 to ASCII letters while preserving case and leaving every other character unchanged.
- Caesar Cipher DecoderEncode or decode a classic Caesar shift while preserving case, punctuation, numbers, and non-ASCII text.
- A1Z26 Cipher TranslatorTranslate English letters to the explicit A=1 through Z=26 puzzle format and decode validated number groups without ambiguous word boundaries.
- Rail Fence Cipher DecoderEncrypt or decrypt text with the historical Rail Fence zigzag transposition while preserving every Unicode code point.
- AES Encryption OnlineEncrypt text into a portable authenticated AES-256-GCM JSON package or decrypt a package with its password entirely in your browser.
- ASCII ConverterConvert standard 7-bit ASCII text to decimal codes or decode decimal codes back to exact ASCII characters locally.