Skip to content
ASCII World

Encoding Guides

Deep dives into how character encoding actually works - from the 1963 ASA publication through modern Unicode, plus practical guides on control characters, Punycode, and debugging encoding problems.

How the First 7-Bit Standard Defined 128 Characters

The X3.4-1963 standard was the first formal publication of ASCII, released by the American Standards Association (now ANSI) on June 17, 1963. It defined a...

Read article

From Binary Numbers to Printable Characters

ASCII maps every letter, digit, and symbol to a number between 0 and 127. Computers store those numbers as binary, so ASCII is the bridge between the text you...

Read article

All 33 Non-Printing Codes and What They Do

ASCII reserves 33 of its 128 positions for control characters: codes 0-31 and code 127. These characters carry no printable glyph. Instead, they send...

Read article

How Computers Turn Letters into Numbers

Every letter you type on a keyboard becomes a number inside your computer. The letter A is 65. The letter B is 66. A space is 32. This number system is called...

Read article

From Baudot to ASCII to Unicode

Character encoding went from total chaos in the 1950s - every manufacturer inventing proprietary mappings - to ASCII in 1963, a patchwork of Extended ASCII...

Read article

Create Art from Text, Images, and Live Video

ASCII art turns text characters into images. The constraint is the medium: 95 printable characters, each occupying the same fixed-width cell. Within those...

Read article

Text-Mode Graphics from Rogue to Dwarf Fortress

Before pixel art, there was character art. Early game developers used ASCII characters as graphics because their hardware had no framebuffer, only a text...

Read article

How Non-Latin URLs Work Over ASCII-Only DNS

Punycode converts Unicode domain names into ASCII-safe strings so the DNS can handle them. The domain munchen.de (with a u-umlaut) becomes xn--mnchen-3ya.de....

Read article

ord(), chr(), Bytes, and Character Encoding

Python 3 draws a hard line between str (a sequence of Unicode code points) and bytes (a sequence of raw octets). Every ASCII operation sits on that boundary....

Read article

charCodeAt, codePointAt, and Text Encoding

JavaScript strings are UTF-16 internally, which means every character occupies at least 2 bytes in memory regardless of whether it falls in the ASCII range....

Read article

char, int Casting, and Character Class Methods

Java's char type is a 16-bit unsigned integer that holds a UTF-16 code unit. Casting char to int yields the numeric code point directly, and for the 128 ASCII...

Read article

Character Code Functions Across PostgreSQL, MySQL, SQL Server, and Oracle

Every major SQL database includes two functions for working with character codes: one that returns the integer code point for a character (ASCII() in all four...

Read article

Variable-Width Encoding from 1 to 4 Bytes

UTF-8 encodes every Unicode code point using one to four bytes, with a bit-level structure that makes the first 128 values identical to ASCII. Ken Thompson and...

Read article

Why Text Turns to Garbage and How to Fix It

Mojibake (from Japanese "character" + "transform") is garbled text caused by decoding bytes with the wrong character encoding. The string "cafe" stored as...

Read article

Two Encoding Systems Separated by 126 Years

Samuel Morse patented his telegraph code in 1837. The ASA published ASCII 126 years later in 1963. Both systems solve the same problem - encoding human...

Read article

A Technical Guide to Keypad Character Entry in Windows

IBM introduced Alt codes in 1981 with MS-DOS 1.0 to let users type characters not present on standard physical keyboard keys. Holding down the left Alt key...

Read article

Binary-to-Text Conversion, RFC 4648, and Real-World Overhead

Base64 expands binary data by roughly 33 percent to ensure safe transit through network protocols designed strictly for plain text. RFC 4648 standardizes the...

Read article

Named, Decimal, and Hexadecimal Escapes in HTML5

The HTML5 specification defines exactly 2,125 named character references, ranging from essential syntax delimiters like < to specialized mathematical...

Read article

Understanding physical voltage, abstraction layers, and modern encodings.

Transistors in dynamic random-access memory represent individual bits using microscopic electrical charges, where a high voltage typically signifies a binary 1...

Read article

Why character code 127 uses all 7 bits and how terminal emulators handle deletion.

Character code 127 sits at the end of the original 7-bit ASCII table as the only control character outside the 0x00 to 0x1F range. Unlike standard control...

Read article

How Character Encoding Mismatches Corrupt Digital Text

The Japanese term mojibake (文字化け) describes the scrambled, nonsensical glyphs that appear when software decodes a sequence of bytes using the wrong character...

Read article

How Typewriter Hardware Created Today's Text Interoperability Bugs

In 1963, the American Standards Association assigned decimal value 13 (0x0D) to Carriage Return and decimal value 10 (0x0A) to Line Feed within the 7-bit ASCII...

Read article

How the 0xEF 0xBB 0xBF byte sequence causes syntax errors, broken scripts, and unexpected output.

The byte sequence 0xEF 0xBB 0xBF at the beginning of a UTF-8 text file represents Unicode code point U+FEFF, commonly known as the Byte Order Mark (BOM). While...

Read article