upside-down · unicode flip · reversed · live

Flip text uʍop ǝpısdn

Render any text using Unicode characters that look like flipped letters. Output is also reversed so it reads correctly when rotated 180 degrees. Runs locally.

Upside-Down Text
Input
13 B
1 lines
Output
16 B
1 lines
Status
ready
live
Ratio
1.23×
out/in
input · text
output · upside-down
¡plɹoM 'ollǝH
Quick Start

How to use upside-down text

Each character is mapped to a similar-looking flipped glyph and the whole string is reversed so it reads correctly when the page is rotated 180 degrees.

  1. 01

    Type or paste text

    Letters, digits and most punctuation are flipped. Unsupported characters pass through.

    Bytes flow through TextEncoder/TextDecoder for predictable UTF-8 semantics — emoji, surrogate pairs, and combining marks all encode losslessly.

    inputUTF-8TextEncoderlosslesslive
    input · raw bytestext · UTF-8
    Hello, World!
    loaded · UTF-8MIME · ready
  2. 02

    Glyph mapping

    a → ɐ, e → ǝ, h → ɥ, ... Many uppercase letters have no exact flipped form, so the visually similar Unicode lookalike is used.

    Hash and signature operations call crypto.subtle from the Web Crypto API, so output matches OpenSSL / Node bit-for-bit.

    unicodeWeb Cryptosubtledeterministiclive
    map · optionsunicode · live
    a→ɐ · e→ǝ · h→ɥ
    options applied · livelive
  3. 03

    Reverse order

    Output is reversed so when you rotate the screen the first character of the input ends up reading first.

    Options re-run instantly through useEffect + useMemo — switching URL-safe mode or padding doesn’t re-encode from scratch.

    ordermemoisedoptionsinstantreactive
    order · encodedreversed · ready
    ¡pꞁɹoM 'ollǝH
    encoded · livelossless
  4. 04

    Copy or download

    One click to clipboard. Download as .txt.

    Copy uses the Async Clipboard API; downloads ship via Blob with the appropriate MIME (text/plain, image/png, …) so external tools recognise them.

    exportclipboardblobMIME-correctclient-side
    ok · copiedready · done
    Copied
    shipped · ready to shipsuccess
Pro tips

Encoding without surprises

Always UTF-8 first

Use TextEncoder / TextDecoder for bytes ↔ string conversion. btoa alone breaks on non-ASCII.

URL-safe vs standard Base64

Standard uses +, /, =; URL-safe swaps to -, _, no padding. Don’t mix them.

Hashes aren’t passwords

SHA-256 is fast; that’s good for fingerprints, bad for passwords. Use bcrypt / argon2 for credentials.

Watch padding rules

Some decoders are strict about = padding, others auto-pad. If round-trips fail at exactly 1 or 2 bytes, check padding.

Use Web Crypto for keys

Generate cryptographic keys via crypto.subtle, never Math.random. The latter is predictable.

JWT decode ≠ verify

Decoding a JWT just splits and base64-decodes. Verification needs the issuer’s public key / shared secret.

Use Cases

When to use upside-down text

Bios, social posts, ARG hints.

Social bios

Stand-out usernames and profile blurbs. Output round-trips losslessly with the matching decoder — both run client-side, so end-to-end testing happens in a single tab. Encoding flows through TextEncoder for predictable UTF-8 semantics.

RFC-compliant

Memes & posts

Add visual flair to status updates or chat messages. Web Crypto's subtle.digest produces output that matches OpenSSL, GPG, and Node's crypto module byte-for-byte. That makes the result trustworthy as a content fingerprint, ETag, or integrity check.

OpenSSL-matched

Creative writing

Stylise titles, captions, or zine layouts. Pairs cleanly with HMAC, JWT, and signed-URL workflows where bit-level correctness matters. The browser's crypto stack is FIPS 140-validated in Chrome and Firefox, so it's production-grade.

lossless

ARG hints

Hide instructions that need a phone rotation to read. Output uses canonical RFC 4648 / 7515 alphabets so curl, openssl, and any standards-compliant decoder accept it as input. URL-safe variants drop padding for tokens that travel in query strings.

byte-identical

Unicode tests

Stress-test font rendering with rare glyphs. Heavy hashing runs through useMemo so large inputs don't block typing. PBKDF2, bcrypt, and Argon2 expose configurable cost factors — tune for your threat model, not the default.

spec-grade

Cross-platform check

Verify how upside-down text renders in different apps. Same input plus same options always yields identical bytes. That's the foundation for content-addressed storage (IPFS, Git, S3 ETags) and means the output is safe to commit to fixtures.

production-ready
FAQ

Frequently asked questions

Some letters and symbols have no usable flipped Unicode equivalent, so they pass through unchanged.
It depends on the platforms font. Most modern OSes and browsers render the flipped glyphs correctly, but very old environments may show boxes.
Yes — flip the output again to recover something close to the original, though characters that were passed through stay in place.
Reversing flips the string order; this tool also swaps each character for its visually inverted Unicode lookalike.
No. The conversion runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!