Full-Width Character

A character that occupies twice the width of a half-width character in fixed-width fonts. Common in CJK text.

Full-width characters occupy twice the horizontal space of half-width characters in monospaced (fixed-width) fonts. Japanese hiragana, katakana, kanji, and full-width alphanumeric characters are all classified as full-width. This concept originated in the early days of Japanese computing to distinguish between 1-byte ASCII characters (half-width) and 2-byte Japanese characters (full-width).

In Unicode, each character has an East Asian Width property classified into six categories: Fullwidth (F), Wide (W), Halfwidth (H), Narrow (Na), Ambiguous (A), and Neutral (N). Japanese kanji and hiragana fall under Wide (W), while ASCII characters are Narrow (Na). Characters classified as Ambiguous (A), such as some Greek and Cyrillic letters, may display as either full-width or half-width depending on the environment, potentially causing layout issues. browse pheromone on Amazon explain the historical origins and modern usage of full-width characters.

Character counting behavior varies significantly by platform. X (Twitter) counts both full-width and half-width characters as 1, while SMS counts each full-width character as 2. Google Ads headlines allow 15 full-width or 30 half-width characters, treating full-width as equivalent to 2 half-width characters. Since the same "character limit" can apply different full-width/half-width conversion rules, accurate counting requires understanding the target platform's specific rules.

In database design, the byte count of full-width characters varies by encoding. In UTF-8, full-width characters consume 3 bytes; in UTF-16, they consume 2 bytes. A VARCHAR(255) column using UTF-8 with byte-based limits can hold at most 85 full-width characters, while character-based limits (as in MySQL) allow up to 255 characters. Misunderstanding this difference can lead to data truncation or errors.

Web form validation frequently requires conversion between full-width and half-width characters. Full-width digits are commonly entered for phone numbers and postal codes, and JavaScript's String.prototype.normalize('NFKC') can normalize full-width alphanumeric characters to half-width. Conversely, normalizing katakana to full-width is often required for address input fields. see orgasm on Amazon cover these conversion patterns.

When using character counting tools, it is important to be aware of how full-width/half-width distinctions affect count results. In systems that treat 1 full-width character as 2 half-width characters, heavy use of full-width increases the character count for the same content. In contexts with character limits, converting full-width katakana to half-width or replacing full-width spaces with half-width spaces can help fit within constraints.

Share this article