ZERO WIDTH NON-JOINER·U+200C

Character Information

Code Point
U+200C
HEX
200C
Unicode Plane
Basic Multilingual Plane
Category
Format

Character Representations

Click elements to copy
EncodingHexBinary
UTF8
E2 80 8C
11100010 10000000 10001100
UTF16 (big Endian)
20 0C
00100000 00001100
UTF16 (little Endian)
0C 20
00001100 00100000
UTF32 (big Endian)
00 00 20 0C
00000000 00000000 00100000 00001100
UTF32 (little Endian)
0C 20 00 00
00001100 00100000 00000000 00000000
HTML Entity
‌
URI Encoded
%E2%80%8C

Description

The Unicode character U+200C (ZERO WIDTH NON-JOINER) plays a crucial role in typography, particularly in the context of digital text formatting. Its primary purpose is to control the spacing between characters, ensuring that certain characters or scripts do not join together when displayed or printed. This is especially important in languages with complex character sets and specific rules for character interaction, such as Arabic, Devanagari, or Thai scripts. The ZERO WIDTH NON-JOINER prevents adjacent characters from merging, preserving the desired visual appearance and legibility of text. Its precise usage is dictated by language and font conventions, highlighting the importance of Unicode in facilitating accurate rendering and interpretation of text across diverse cultures and languages.

How to type the symbol on Windows

Hold Alt and type 8204 on the numpad. Or use Character Map.

  1. Step 1: Determine the UTF-8 encoding bit layout

    The character has the Unicode code point U+200C. In UTF-8, it is encoded using 3 bytes because its codepoint is in the range of 0x0800 to 0xffff.

    Therefore we know that the UTF-8 encoding will be done over 16 bits within the final 24 bits and that it will have the format: 1110xxxx 10xxxxxx 10xxxxxx
    Where the x are the payload bits.

    UTF-8 Encoding bit layout by codepoint range
    Codepoint RangeBytesBit patternPayload length
    U+0000 - U+007F10xxxxxxx7 bits
    U+0080 - U+07FF2110xxxxx 10xxxxxx11 bits
    U+0800 - U+FFFF31110xxxx 10xxxxxx 10xxxxxx16 bits
    U+10000 - U+10FFFF411110xxx 10xxxxxx 10xxxxxx 10xxxxxx21 bits
  2. Step 2: Obtain the payload bits:

    Convert the hexadecimal code point U+200C to binary: 00100000 00001100. Those are the payload bits.

  3. Step 3: Fill in the bits to match the bit pattern:

    Obtain the final bytes by arranging the paylod bits to match the bit layout:
    11100010 10000000 10001100