dollcode

project utilities

A base-3 text encoder using Unicode block characters. Each character's codepoint is encoded using digits 3 mapped to ▖▘▌.

About

This is a recreation of the text encoding functionality from the original dollcode site (dollcode.v01dlabs.sh) that no longer exists. It was reverse-engineered using:

  • The dollcode.rs Rust crate (which only supports number encoding)
  • Information from noe.sh/dollcode about the base-3 encoding system
  • Analysis of example encoded strings to determine the text encoding algorithm

Dollcode is a trinary (base-3) encoding system using Unicode block characters. The original site supported encoding both pure numbers and text, but used different encoding schemes for each. This implementation focuses on the text-compatible version.

How It Works

  1. Each character is converted to its Unicode codepoint
  2. The codepoint is encoded using base-3 with digits {1,2,3}
  3. Digits are mapped to characters: 1→▖, 2→▘, 3→▌
  4. Character groups are separated by zero-width joiners (U+200D)

Example: Hello▘▖▘▌‍▌▖▌▘‍▌▘▘▌‍▌▘▘▌‍▌▘▌▌‍

Technical Details

  • Default Characters: ▖ (U+2596), ▘ (U+2598), ▌ (U+258C)
  • Default Separator: Zero-width joiner (U+200D)
  • Encoding: Base-3 system with digits {1,2,3} instead of {0,1,2}
  • Character Order: Most significant bit first (MSB-first)

Differences from Number-Only Encoding

The Rust crate at dollcode.rs implements number-only encoding, which produces different output than text encoding. This implementation focuses on the text-compatible version that was available on the original dollcode.v01dlabs.sh site.

LLM-readable markdown version of this page