Invisible characters - ASCII

299,597

Solution 1

How a character is represented is up to the renderer, but the server may also strip out certain characters before sending the document.

You can also have untitled YouTube videos like https://www.youtube.com/watch?v=dmBvw8uPbrA by using the Unicode character ZERO WIDTH NON-JOINER (U+200C), or ‌ in HTML. The code block below should contain that character:

‌‌ 

Solution 2

I just went through the character map to get these. They are all in Calibri.

Number    Name                   HTML Code    Appearance
------    --------------------   ---------    ----------
U+2000    En Quad                       " "
U+2001    Em Quad                       " "
U+2002    En Space                      " "
U+2003    Em Space                      " "
U+2004    Three-Per-Em Space            " "
U+2005    Four-Per-Em Space             " "
U+2006    Six-Per-Em Space              " "
U+2007    Figure Space                  " "
U+2008    Punctuation Space             " "
U+2009    Thin Space                    " "
U+200A    Hair Space                    " "
U+200B    Zero-Width Space       ​      "​"
U+200C    Zero Width Non-Joiner  ‌      "‌"
U+200D    Zero Width Joiner      ‍      "‍"
U+200E    Left-To-Right Mark     ‎      "‎"
U+200F    Right-To-Left Mark     ‏      "‏"
U+202F    Narrow No-Break Space         " "

Solution 3

There is actually a truly invisible character: U+FEFF. This character is called the Byte Order Mark and is related to the Unicode 8 system. It is a really confusing concept that can be explained HERE The Byte Order Mark or BOM for short is an invisible character that doesn't take up any space. You can copy the character bellow between the > and <.

Here is the character:

> <

How to catch this character in action:

  • Copy the character between the > and <,
  • Write a line of text, then randomly put your caret in the line of text
  • Paste the character in the line.
  • Go to the beginning of the line and press and hold the right arrow key.

You will notice that when your caret gets to the place you pasted the character, it will briefly stop for around half a second. This is becuase the caret is passing over the invisible character. Even though you can't see it doesn't mean it isn't there. The caret still sees that there is a character in that area that you pasted the BOM and will pass through it. Since the BOM is invisble, the caret will look like it has paused for a brief moment. You can past the BOM multiple times in an area and redo the steps above to really show the affect. Good luck!

EDIT: Sadly, Stackoverflow doesn't like the character. Here is an example from w3.org: https://www.w3.org/International/questions/examples/phpbomtest.php

Solution 4

Other answers are correct - whether a character is invisible or not depends on what font you use. This seems to be a pretty good list to me of characters that are truly invisible (not even space). It contains some chars that the other lists are missing.

'\u2060', // Word Joiner
'\u2061', // FUNCTION APPLICATION
'\u2062', // INVISIBLE TIMES
'\u2063', // INVISIBLE SEPARATOR
'\u2064', // INVISIBLE PLUS
'\u2066', // LEFT - TO - RIGHT ISOLATE
'\u2067', // RIGHT - TO - LEFT ISOLATE
'\u2068', // FIRST STRONG ISOLATE
'\u2069', // POP DIRECTIONAL ISOLATE
'\u206A', // INHIBIT SYMMETRIC SWAPPING
'\u206B', // ACTIVATE SYMMETRIC SWAPPING
'\u206C', // INHIBIT ARABIC FORM SHAPING
'\u206D', // ACTIVATE ARABIC FORM SHAPING
'\u206E', // NATIONAL DIGIT SHAPES
'\u206F', // NOMINAL DIGIT SHAPES
'\u200B', // Zero-Width Space
'\u200C', // Zero Width Non-Joiner
'\u200D', // Zero Width Joiner
'\u200E', // Left-To-Right Mark
'\u200F', // Right-To-Left Mark
'\u061C', // Arabic Letter Mark
'\uFEFF', // Byte Order Mark
'\u180E', // Mongolian Vowel Separator
'\u00AD'  // soft-hyphen
Share:
299,597

Related videos on Youtube

DonOfDen
Author by

DonOfDen

ಠ_ಠ www.DonOfDen.com You can contact me via javascript:atob("YXJhdmluZGt1bWFyLmdhbmVzYW5AZ21haWwuY29t");

Updated on June 30, 2021

Comments

  • DonOfDen
    DonOfDen almost 3 years

    Are there any invisible characters? I have checked Google for invisible characters and ended up with many answers but I'm not sure about those. Can someone on Stack Overflow tell me more about this?

    Also I have checked a profile on Facebook and found that the user didn't have any name to his profile? How can this be possible? Is it some database issue? Hacking or something?

    When I searched over Internet, I found that 200D is an ASCII value with an invisible character. Is it true?

    • Alex Gittemeier
      Alex Gittemeier almost 11 years
      the space character is invisible (0x20) :P
    • Siba Prasad Hota
      Siba Prasad Hota almost 11 years
      Also , you can Create nameless folder in Windows XP ,may be like that he named hisProfile. press and hold the Alt key and while holding the Alt key, type numbers 0160 from the numpad. Here it is important to note that number 0160 should be typed from numpad and not from number keys present above character keys. Press Enter and the nameless file or folder will be created.
    • Dani
      Dani about 5 years
    • bers
      bers over 3 years
      I have never seen any.
  • gdvalderrama
    gdvalderrama about 5 years
    What does Calibri have to do with this?
  • D.Kastier
    D.Kastier almost 5 years
    @guival not every font set has the definition for every Unicode symbol. As example
  • Miguel Bartelsman
    Miguel Bartelsman over 4 years
    U+2800 Braille blank pattern &#10240; "⠀"
  • James Moberg
    James Moberg over 4 years
    I found some additional characters that I needed to have sanitized (like Word Joiner & OGHAM Space Mark). Here's my list (in JSON format): gist.github.com/JamoCA/42c3be286185aff0476d5888f0a819ff
  • Sebastian Simon
    Sebastian Simon over 3 years
    It’s one of many. What exactly does this answer add to the other existing three answers?
  • skomisa
    skomisa about 2 years
    There is a web site named invisible-characters.com which has compiled a list similar to yours. There is understandably a considerable overlap, but you have a few that they don't, and vice versa. They are missing '\u2066' through '\u2069' from your list. Conversely, your list is missing quite a few of theirs, such as U+034F (COMBINING GRAPHEME JOINER) and U+200B (ZERO WIDTH SPACE). That said, some entries on their list are obviously not invisible (e.g. U+0020 (SPACE) and U+200A (HAIR SPACE)), so I'd treat their list with caution.