Base100 bulk encoding converts UTF-8 text into a stream of emoji-range Unicode symbols using a single fixed formula: every byte b becomes the code point U+1F3F7 + b, so byte 0 maps to U+1F3F7, byte 1 to U+1F3F8, and byte 255 to U+1F4F6, with no padding, delimiters, checksums, or compression added at any length. Because the mapping is exactly one symbol per byte, a bulk paste of plain ASCII text produces one Base100 symbol per character, while a paste that contains accented letters, CJK characters, or emoji typically produces many more symbols because each Unicode character expands into several UTF-8 bytes before the byte-by-byte mapping runs. The whole conversion runs in the browser through the Base100 Encoder / Decoder, so a paste of up to 500,000 bytes or symbols is processed locally without uploading input to any server. That local, deterministic behavior is what makes Base100 useful for repeatable bulk encoding: paste the text, run the conversion, and copy the resulting symbol stream as a single block ready to paste back into a decoder later.

How Base100 Handles Bulk Pastes
For the Base100 encoder, "bulk" is not a separate mode with batch rows or a CSV-style interface; it is simply how the tool behaves when you paste a large block of text into the input field. The encoder reads the input, converts it to UTF-8 bytes, and walks the byte sequence from 0 to 255, emitting exactly one Unicode symbol per byte in the inclusive range U+1F3F7 through U+1F4F6. The mapping uses the convention introduced in Adam Niederer's Base100 project, and it is documented equivalently in independent implementations of the same byte formula. A 10-character ASCII line therefore produces 10 symbols. A 10 KB block of plain English text produces about 10,000 symbols. There is no compression step, no length prefix, no per-line header, and no checksum appended, so the output length is fully predictable: it equals the byte count of the encoded UTF-8 input.
The implementation enforces three limits that matter when you are planning a bulk run. First, the input is capped at 500,000 bytes or symbols in either direction so that accidental huge pastes do not freeze the browser. Second, empty input is rejected rather than producing an empty output. Third, decoding is strict: a UTF-8 sequence reconstructed from the byte stream must be valid, and any symbol outside the inclusive 256-code-point Base100 window causes the decoder to fail rather than silently inserting a replacement character.
Bulk Encode UTF-8 Text to Base100
Use the Base100 Encoder / Decoder directly in your browser. The steps below cover both directions of a bulk workflow so the same paste can be reversed later.
- Open the Base100 Encoder / Decoder page in your browser.
- Select the "Text to Base100" operation from the direction control.
- Paste your bulk UTF-8 text into the input field. Anything up to 500,000 bytes is accepted; longer pastes are refused before encoding starts.
- Run the encoder and wait for the symbol stream to render. The output length equals the UTF-8 byte count of your input.
- Select the output and copy it as one contiguous block. Do not introduce spaces, line breaks, or variation selectors during the copy.
- To reverse the conversion later, choose "Base100 to text", paste the exact unmodified symbol stream back into the input, and run the decoder. A clean round trip reproduces the original text byte for byte.
Byte Expansion: Why Large Pastes Grow Longer
The most surprising thing about bulk Base100 encoding is how much a moderately sized Unicode string can grow after conversion. Base100 counts bytes, not characters, so any non-ASCII input that uses multi-byte UTF-8 sequences expands before the byte-to-symbol mapping runs. A single accented letter such as "é" is two UTF-8 bytes, so it becomes two Base100 symbols. A CJK character is usually three UTF-8 bytes, becoming three symbols. An emoji outside the Basic Multilingual Plane is four UTF-8 bytes, becoming four symbols. A useful reference for how UTF-8 allocates those bytes is the WHATWG Encoding Standard, which the decoder uses at the text boundary.
In practice this means that a paragraph of 100 plain ASCII characters produces 100 symbols, while the same paragraph rewritten with emoji can produce several hundred. For bulk workflows, the practical advice is to measure expected output size in bytes of the original UTF-8, not in characters you can see on screen. If you need a more detailed walkthrough of how each byte offset maps to a specific code point range, the guide on mapping UTF-8 bytes to emoji symbols covers the full byte-to-code-point table.
The output symbol count therefore measures encoded bytes, not user-perceived characters, grapheme clusters, words, or the original JavaScript string length. A bulk paste that looks compact in your editor can quietly exceed the 500,000-symbol cap once it expands.
Preserving the Bulk Output Across Apps
Once a bulk paste has produced a long Base100 symbol stream, the next risk is the clipboard, not the encoder. Several chat apps, mobile keyboards, document editors, and normalization pipelines will quietly insert a variation selector (U+FE0F), a zero-width joiner, a stray space, or a line break when you copy a string of emoji. The decoder intentionally rejects every one of those extras, because they are not framing syntax in the original format. A stream that looks identical on screen can therefore be bytewise different and fail strict decoding.
The safest way to move a bulk Base100 output around is to copy from the tool's output area directly, paste into a plain-text editor first to confirm the symbol stream is intact, and only then move it to the destination. If the destination is an ASCII-only transport such as email or a URL, Base100 is not the right carrier at all: any system that strips non-ASCII code points will silently corrupt the stream, and the decoder will reject what is left.
Rendering is a separate concern. Some mapped code points appear as colorful images, monochrome glyphs, boxes, or unexpected pictographs depending on the operating system, font, browser, or messaging platform. Rendering never changes the mathematical mapping inside a conforming string, but a system that substitutes, strips, or decorates characters during copy or paste absolutely can. Preserve the exact code points when interoperability matters.
When Base100 Is the Wrong Tool for Bulk Transport
Base100 is one option among several for moving bytes around, and it is not always the best one. The table below compares the most common alternatives for bulk byte transport. Specific size ratios and symbol counts depend on the input, so the figures here describe the general direction rather than computed values for a particular string.
| Encoding | Output size vs input bytes | Stays inside ASCII | Code point range used | Strong fit for bulk when… |
|---|---|---|---|---|
| Base100 | ~1× (one symbol per byte) | No | U+1F3F7–U+1F4F6 | the receiver can render emoji-range code points |
| Base64 (RFC 4648) | ~1.33× | Yes | 0–127 | the channel is ASCII-only or URL-safe text |
| Hexadecimal | 2× | Yes | 0–127 plus a–f | you need an exact byte-level human-readable dump |
| Base32 (RFC 4648) | ~1.6× | Yes | A–Z, 2–7 | the channel is case-insensitive or visually friendly |
For most bulk transports where the recipient is software rather than a human reader, Base64, hexadecimal, or Base32 will be smaller, safer, and more universally compatible than Base100. Base100's advantage is the readable, distinctive emoji-range output, which makes it useful for demonstrations, joke encodings, visual proofs of concept, and any bulk workflow where the receiver is specifically equipped to handle that exact 256-code-point window.
Base100 is also an encoding, not encryption, hashing, signing, authentication, compression, steganography, or human-language emoji translation. Anyone with the mapping can recover the text, and a single changed symbol changes a byte in the decoded output without any built-in checksum to flag the difference. For secrecy, integrity, or tamper detection, use reviewed authenticated formats rather than relying on the obscurity of emoji symbols.