Base100 encoding turns each byte of UTF-8 text into a single emoji-range Unicode symbol, mapping byte values 0 through 255 onto code points U+1F3F7 through U+1F4F6. Running it on an iPhone is straightforward because the Base100 Encoder / Decoder runs entirely inside Safari, processes input locally, and never uploads the text. Open the page in Mobile Safari, pick the Text to Base100 direction, type or paste your message, and tap Encode to receive a stream of symbols you can copy to the clipboard. The same page accepts pasted Base100 symbols and decodes them back to text as long as no variation selector, space, line break, or out-of-range character sneaks in during copying. Because Base100 works on UTF-8 bytes rather than visual characters, ordinary English text produces one symbol per letter while accented characters, CJK letters, and emoji expand into multiple symbols according to their UTF-8 representation. The page enforces a 500,000-byte or 500,000-symbol ceiling so a stray huge paste does not freeze Safari. All encoding and decoding happens in the browser, which means a weak signal or no signal at all does not prevent a conversion once the page is loaded.

How Base100 Maps Bytes to Emoji Symbols
The mapping rule is a single arithmetic step applied to each byte of the input. The tool first converts the typed text into UTF-8 bytes, then adds the byte value to the constant code point U+1F3F7. A byte of value zero becomes U+1F3F7, a byte of value one becomes U+1F3F8, and so on until byte 255 becomes U+1F4F6, which closes the inclusive 256-symbol range. There is no padding character, no checksum, no length prefix, and no delimiter between symbols, so the decoder must read the stream by counting code points rather than by scanning for whitespace.
You can verify one step of the rule by hand. The byte for the ASCII letter H is decimal 72. Adding 72 to the offset 127991 gives decimal 128063, which is U+1F43F. Open the Base100 Encoder / Decoder on an iPhone, type the single letter H, tap Encode, and the resulting stream begins with that single symbol. Because the rule is symmetric, the symbol subtracts back to byte 72, and the strict UTF-8 decoder reads 72 as the ASCII character H. That same one-byte-one-symbol property is what makes Base100 so easy to inspect visually: each symbol in the output corresponds to exactly one byte of the original input.
How to Base100 Encode on iPhone in Safari
- Open Safari on your iPhone and load the Base100 Encoder / Decoder page. The tool needs the page to be loaded once, then works without a network connection because conversion runs in the browser.
- Tap the Text to Base100 direction so the encoder mode is active rather than the decoder mode.
- Tap inside the input area and either type with the iOS keyboard or paste from another app using the standard Paste command.
- Tap Encode. The page converts the input to UTF-8 bytes and emits one symbol per byte, appearing instantly below.
- Tap Copy to place the exact symbol stream on the iPhone clipboard, then paste into Messages, Mail, Notes, or any app that accepts emoji input.
- To decode later, reopen the same page, switch to Base100 to text, paste the unmodified symbol stream, and tap Decode. The original text returns if the stream survived the round trip untouched.
The whole flow uses the standard iOS share and paste affordances, so there is nothing to install from the App Store and no account to create. If you want a side-by-side reference for the byte-to-symbol mapping, the Base100 Encode Cheat Sheet: Bytes, Emojis, and Decoding lays out the same rule in a printable form.
Copying the Symbol Stream Safely From an iPhone
The mapping is byte-exact, so anything that changes a single code point changes a single byte of the decoded text. iOS apps, keyboards, and copy-paste pipelines can quietly insert a variation selector such as U+FE0F next to a code point so it renders as a colorful emoji rather than a monochrome glyph. That selector is not part of the Base100 alphabet, and the strict decoder rejects it. Messages, Mail, and some third-party keyboards may also wrap long copies in their own formatting characters or split streams with implicit line breaks at certain widths. None of these inserts is allowed inside a valid Base100 string.
To keep a copy clean, paste the symbol stream into a plain-text field such as Notes in unformatted mode, or use the iPhone clipboard viewer that shows the exact bytes. If the decoder reports a rejected character, scroll to that position and remove the variation selector, the stray space, or the inserted punctuation. A round trip where you encode, paste the output back into the decoder, and recover the original text is the fastest way to confirm the stream was preserved. If a similar-looking pasted value still fails, the cause is almost always one of these invisible additions rather than a flaw in the mapping itself.
Other iPhone-Friendly Encodings and When to Use Them
Base100 is one of several byte encodings available as browser tools on an iPhone. Each one trades readability, density, and transport compatibility in a different way, so picking the right one matters.
| Encoding | Output alphabet | ASCII-safe transport | UTF-8 text friendly | One symbol per byte |
|---|---|---|---|---|
| Base16 (hex) | 0-9, A-F | Yes | Yes | Two symbols per byte |
| Base32 | A-Z, 2-7 with padding | Yes | Yes | About 1.6 symbols per byte |
| Base58 | Bitcoin alphabet | Yes | Yes | More than one symbol per byte |
| Base64 | A-Z, a-z, 0-9, +, / | Yes | Yes | About 1.33 symbols per byte |
| Base100 | U+1F3F7 through U+1F4F6 | No (emoji range) | Yes | Exactly one symbol per byte |
Base100 stands out because its output is one symbol per input byte and the symbols are visually obvious as emoji-range code points. The trade-off is that nothing about the output is ASCII, so any destination that strips or substitutes non-BMP emoji will mangle the stream. For ASCII-only transport, prefer Base64 Encode / Decode, Base32 Encode / Decode, or Base58 Encode / Decode depending on the alphabet the destination expects.
Limits and Failure Modes on iPhone Safari
The page enforces hard limits to keep Mobile Safari responsive on devices with limited memory. Either direction accepts up to 500,000 bytes or 500,000 symbols and rejects empty input. Decoding uses fatal UTF-8 validation, so a stream whose bytes are not a valid UTF-8 sequence returns an error instead of replacing bad bytes with U+FFFD. That strict behavior catches accidental paste damage early rather than producing silent garbage text.
| Symptom on iPhone | Likely cause | Fix |
|---|---|---|
| Decoder rejects one symbol | Variation selector U+FE0F inserted | Strip the selector or recopy from the encoder |
| Decoder reports invalid UTF-8 | Space or line break added during copy | Recopy through a plain-text field |
| Output looks like boxes or blanks | Font lacks the upper emoji range | Use a recent iOS version that ships Apple Color Emoji |
| Tool says input too large | Over the 500,000 byte or symbol ceiling | Split the input or use a smaller test message |
If the page feels slow on an older iPhone, reload it, force Safari to drop the cached version, and try a smaller test message first. The 500,000 ceiling is shared by both directions and exists specifically so an accidental huge paste does not lock up the browser tab.
Base100 Is Encoding, Not Encryption
The byte-to-symbol mapping is fully reversible, and the original Adam Niederer Base100 project publishes the formula in plain sight. Anyone who knows the offset constant U+1F3F7 can decode any stream back to its UTF-8 bytes, then to the original text. Base100 also lacks a checksum, so a syntactically valid single-symbol change is undetectable. Use reviewed encryption and authenticated formats such as AES Encryption Online or HMAC Generator for secrecy and tamper detection. For everyday tasks like packaging a message in emoji symbols for a chat, tagging test data so it stands out in logs, or producing a one-symbol-per-byte demonstration of UTF-8 expansion, Base100 on iPhone is a compact local solution that does not require installing anything beyond Safari itself.
For a deeper look, see Base100 Encode on Mac: Run It in Safari Without Installing.