ForHosting KIT · Developer Utilities

Ecoji emoji encoder

Wrap a short message in emojis that survive any chat window: Hello, Ecoji! is 13 bytes and becomes 12 emojis, and pasting them back returns the exact text, accents and all. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Text
Hello, Ecoji!
You get
Result
🏯🔩🚗🌷🍸📖🐩🤜👺🕺🌆☕
Calculation mode
Encode
Version
v2
Emoji count
12

Ecoji is a base-1024 transfer encoding that maps binary data onto a curated set of Unicode emojis so short messages, tokens, and checksums can travel through chat apps, tickets, and status pages that prefer paste-friendly characters over raw Base64. Use it when you need a human-visible, copy-paste-safe envelope for small strings without installing a local Ecoji CLI.

How Ecoji packs text into emojis

Ecoji is a base-1024 encoding: instead of the 64 characters Base64 uses, it draws from a fixed set of 1024 emojis. Your text is first turned into UTF-8 bytes. Every five bytes make a block of forty bits, which is split into four numbers of ten bits each, and each number picks one emoji. That is why five bytes always become four visible symbols, fewer characters than Base64 needs, even though each emoji takes several bytes behind the scenes. Hello, Ecoji! is 13 bytes, so it becomes two full blocks plus a short one, 12 emojis in all, the last of them padding. Accented letters, other scripts and emoji in the original all come back exactly.

Choosing a version and avoiding mix-ups

Version 2 is the default and trims redundant padding when the last block holds only one or two bytes, which keeps short tokens shorter. Version 1 always pads the final group out to four emojis; choose it only when the receiving side can read nothing else. Decoding recognizes both versions on its own, but a string that mixes them or contains emojis outside the Ecoji set is rejected with a clear message rather than decoded into nonsense. An empty message is valid and simply gives an empty result. Ecoji works best for small things such as ticket IDs, short tokens and configuration fragments pasted into chat.

Encode text to Ecoji V2 (or V1) emojis

The engine serializes the string as UTF-8 bytes, then groups every five bytes into a forty-bit word and maps four successive ten-bit ordinals into the Ecoji alphabet of one thousand twenty-four emojis. When the final block is shorter than five bytes, Ecoji inserts padding symbols so the decoder can recover the exact length: version 2 trims redundant fill padding for one- and two-byte tails, while version 1 always pads each final group out to four emojis. Empty strings are valid and encode to an empty result with zero bytes.

Multilingual text, punctuation, and ordinary emoji in the source all round-trip because the path is full UTF-8, not a Latin-1 shortcut. Identical inputs always produce identical outputs because the algorithm is pure arithmetic with no network, no random salt, and no wall clock.

Chat-safe short tokens

Encode configuration fragments and ticket IDs as Ecoji so they survive chat apps and status pages that break Base64 punctuation, then decode on the receiving service with the same mode field.

How do I encode text to Ecoji emojis?

The result field contains the Ecoji emoji string; version defaults to v2.

How do I decode Ecoji back to text?

Send mode decode and put the Ecoji emoji string in text.

What is the difference between Ecoji V1 and V2?

They use different 1024-emoji alphabets (with shared symbols keeping the same ordinal). V2 trims fill padding on short tails; V1 always pads each final group to four emojis. Decode accepts both.

Is the Ecoji emoji encoder free?

The browser tool runs free on your device.

Why does an Ecoji string often end with a coffee cup?

The coffee emoji is the fill padding. When the last block of text is shorter than five bytes, padding symbols tell the decoder exactly how long the original was, so it can rebuild the text without extra or missing characters.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/enc/ecoji

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/enc/ecoji \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello, Ecoji!"}'
{
  "text": "Hello, Ecoji!"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.ecoji",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Each emoji carries ten bits, so five input bytes become four visible symbols—fewer characters than Base64 for the same payload, even though each glyph is multi-byte under the hood. This capability encodes plain UTF-8 text to Ecoji (defaulting to version 2 with trimmed padding) and decodes either Ecoji version 1 or version 2 back to text, rejecting unknown or mixed-version emoji sequences with a clear invalid input error.

Encode text to Ecoji V2 (or V1) emojis

Send a JSON body with the required string field text set to the plain message you want to carry, and leave mode at its default encode or set mode to encode explicitly. Set version to 2 (the default) for modern paste payloads, or version to 1 when you must interoperate with older Ecoji V1-only tools. Optional aliases input, value, and s are accepted for the text field, and direction, op, or action for mode, so generated clients from older form names still work. The response always includes result with the Ecoji string, mode equal to encode, version as v1 or v2, emoji_count as the number of emoji code points produced, and bytes as the UTF-8 length before encoding so tests can assert payload size.

Decode Ecoji emojis and report invalid input

Set mode to decode and put an Ecoji emoji string in text. Fill padding (the coffee emoji) and the special last-byte padding glyphs reconstruct short final blocks so one, two, three, or four residual bytes decode without guesswork. Empty Ecoji input, padding in the first position, truncated groups under V1 rules, and unknown emojis are all hard errors. Newlines and carriage returns are ignored so multi-line pastes still work, but any code point outside the Ecoji data alphabet and padding set causes an immediate invalid_input failure with a message that names the offending character. The decoder accepts both Ecoji V1 and V2: symbols that appear only in one version set the expected version for the rest of the payload, and a later symbol exclusive to the other version is rejected as mixed-version corruption. After the bytes are recovered they are interpreted as UTF-8 with a fatal decoder: illegal byte sequences raise invalid_input instead of inserting replacement characters that would corrupt downstream displays. Successful decode returns result as the recovered string, mode decode, version v1 or v2, emoji_count for the non-newline symbols in the input, and bytes as the decoded UTF-8 length. Validation failures are not charged on the prepaid API, so probing a suspicious paste is cheap for operators and safe for end users who only need a clear diagnosis.

API usage, pricing, workflows, and practical limits

Call the free in-browser Ecoji emoji encoder for classroom demos, support playbooks, and one-off conversions without installing the Go reference tool or language-specific packages. A typical workflow encodes a short configuration fragment or ticket identifier for a chat channel that mangles Base64 punctuation, then decodes on the receiving service with mode decode and asserts that bytes match the original length. Prefer Ecoji when search intent is literally emoji transfer encoding or Ecoji encode decode; prefer Base64 or Base58 when the channel is pure ASCII and emoji fonts are unreliable. Use the prepaid KIT API when a backend, serverless function, or SDK needs the same encode or decode step under balance at $0.002 per successful item; failed validation never consumes balance after the engine rejects the request. Authors shipping SDKs can map the result field straight into a copy button, while mode, version, and emoji_count labels make screenshots and OpenAPI examples self-explanatory for readers who are new to base-1024 emoji encodings.

Docs and CI golden checks

Pin encode and decode fixtures for Ecoji V1 and V2 so documentation samples and continuous-integration tests fail fast if the alphabet or padding rules ever drift.

Support and education

Agents and students convert text to Ecoji and back in the free browser widget, with clear invalid_input errors when a paste includes unknown or mixed-version emojis.

What happens if the emoji string is invalid?

Decode fails with invalid_input when a character is not in the Ecoji alphabet, padding is illegal, versions are mixed, the payload is empty, or the recovered bytes are not valid UTF-8. The request is not charged.

Read the full KIT documentation →