38

How can I type the unicode character U+200B (zero-width space character) with my keyboard?

6
  • 3
    Which operating system are you using? Commented Jun 25, 2010 at 12:25
  • 1
    @pipitas: If it's OS dependent, I'd prefer Windows. Commented Jun 25, 2010 at 14:44
  • 1
    Side question: Why do you want a zero-width space? It doesn't help for the broken comment formatting, you'd have to use a hair space, then.
    – Joey
    Commented Jun 26, 2010 at 7:50
  • @Johannes: Because I couldn't find an answer to my question on Meta: meta.stackexchange.com/questions/54990/… and meta.stackexchange.com/questions/54990/…. Could you please explain how I can use a hair space? Commented Jun 26, 2010 at 8:23
  • Ah, ok, different problem then. I thought you were trying something like meta.stackexchange.com/questions/45424 this where ZWS doesn't work (see my test comments below the question). Also you posted the same link twice.
    – Joey
    Commented Jun 26, 2010 at 13:56

9 Answers 9

31

When using recent versions of Chrome/Chromium, you can use its console to copy the character to clipboard:

copy("\u200B")         // works for BMP characters only (U+0000 to U+FFFF)
copy("\u{200B}")       // works for all characters (U+0000 to U+10FFFF)

copy(String.fromCodePoint(0x200B))
1
  • 2
    Works on Firefox too Commented Apr 12, 2020 at 14:11
18

First convert the hex 200B to decimal 8203

Second, making sure numlock is turned on, press the following keystrokes while holding down the Alt key, then striking the four digits on the numeric keypad, and finally releasing the Alt key.

Alt+8203

It will insert the proper character, but you may see garbage depending on the font you are using (does it contain a glyph for that character) as well as the editor you are using may not be unicode aware and treat it as two characters or something else completely.

Note: I tested this with the Arial Unicode MS font, and it worked like a champ.

7
  • 1
    Thanks for your answer but how can I do it, for example, inside this very comment box? Commented Jun 25, 2010 at 17:24
  • 19
    This inserts U+2642 here. In RichEdit it works (as does using 08203). As to the why for U+2642: 8203 mod 256 is 11 which was, in the OEM charset, the character code of the glyph ♂ (which is now U+2642). This is consistent with what I have previously observed: Using Alt+foo treats the code differently, depending on what is prefixed. If no 0 is at the start of the code, then it is interpreted in the OEM charset, otherwise the system legacy charset. In both cases Unicode is only involved in converting the result to a character.
    – Joey
    Commented Jun 26, 2010 at 8:06
  • 1
    Obviously this differs between applications and controls, but not in a meaningful and predictable way so as a general solution this isn't quite right, still.
    – Joey
    Commented Jun 26, 2010 at 8:06
  • 1
    By the way, browsers should have no problem picking a font for a particular glyph that isn't present in the font specified. Also Arial does contain a glyph for U+200B. In any case, you shouldn't see null glyphs (boxes or U+FFFD) on a semi-recent system.
    – Joey
    Commented Jun 26, 2010 at 8:09
  • 3
    How do you type this character on a device that doesn't have a numeric pad, like some laptops? Commented Jan 8, 2012 at 9:30
10

Follow the instructions in Wikipedia. Unfortunately you need to set a registry key first.

After that formality is taken care of, just hold Alt and press + 2 0 0 B, typing the + and numbers on the numpad, and the letters normally.

2
  • 4
    Typing the letter B at the end on my Windows XP terminal seems to abort the escape sequence and no character is actually sent to the text box.
    – Goyuix
    Commented Jun 25, 2010 at 15:24
  • @Goyuix: The console windows are an entirely different beast ... most of the time you can't enter characters with Alt+foo there.
    – Joey
    Commented Jun 26, 2010 at 7:49
9

Alt + 0129

This inserts a zero-width character.

1
  • 12
    0129 - hex 0x81 - is not the same as U+200B and is not a zero-width character. In the Windows Cp1252 character encoding and ISO-8859-1 it is "not a character" — there is nothing at the code-point x81, so yes, it renders as nothing, but it isn't a word boundary so it's not the same as a zero-width space. In Unicode, codepoint 0x81 is in the "C1" reserved control character range. If you're using Unicode / UTF-8 encoding you should avoid characters in the range 0x80 to 0x9f (128-159). Even in Latin-1 this range is reserved
    – Stephen P
    Commented Aug 19, 2015 at 18:59
7

Alt+0173 (old post but I didn't see this specific answer)

1
  • This works for me on Windows 10, thank you! Commented Nov 1, 2023 at 13:22
4

You can go to this website: Symbols - it provides easy access to many special symbols and characters. At the bottom of the page, you see a button for "Zero Width Space" character, just click on that button to have the "Zero Width Space" character copied in the clipboard.

0
0

To type this on a laptop with no separate number pad, you'll need to turn numlock on, which will differ depending on your computer's manufacturer. The numbers 0-9 are then MJKLUIO789, respectively. On most laptops, these keys are marked as such. But, even if they aren't, it should still work.

0

My go-to site for any special characters that I cannot enter via Unicode hexadecimal + Alt+X (such as in LibreOffice or Word, is Amp-what.com. You can search by character name(s), decimal, hex and even html entities. Click the desired character, a supersized box pops up and you can then click whichever part you need. Amp-what.com entry for 200b This selection box is especially useful when copying characters that you cannot easily select with your mouse, such as non-space characters or diacriticals. Simply clicking inside the box copies whichever character is there to your clipboard.

-3

Im not 100% sure but i think it may be Alt+127

5
  • hmm well the inly other one i can think if is the unicode version witch us 200 or 200B so try ALT+200 or ALT+200B
    – RobertPitt
    Commented Jun 25, 2010 at 11:41
  • 1
    When I do it, this character appears: Commented Jun 25, 2010 at 11:41
  • Alt + 200 = Commented Jun 25, 2010 at 11:52
  • 1
    This answer is incorrect - ASCII 127 is commonly the DEL character, not a zero width space unicode character.
    – Goyuix
    Commented Jun 25, 2010 at 15:23
  • @RobertPitt: if you want to use the "alt+NMO" method with numeric keypad, the "NMO" part must not be the identical string as the Unicode codepoint description. Unicode codepoints are given as hex values. The "alt+NMO" method needs decimal values. You MUST convert the Unicode "NMOP" into a decimal. Then use "alt+<decimal-of-NMOP>" on your numeric keypad. (Doesn't work for me with the examples Mehper had given, I don't have fonts. But works for all cases of "normal" characters, as well as characters which are displayed by my local charmap.exe.) Commented Jun 25, 2010 at 22:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .