Spending my days in the world of enterprise analytics implementations, I meet a lot of characters. This week I had the pleasure of being introduced to a “friend” in the world of “why isn’t my TMS working”. This friend’s name is the “Zero Width Space” character, and its unicode value is U+200B. You can learn more about this character here.
This character is exactly what it sounds like, a character that appears in-line with other text, but has zero width, rendering it practically invisible. Here is what I mean:
Consider the two Signal snippets below:
and…
Now, you might think that these snippets look identical, but you would be wrong, and here is why. In the first snippet, on the 6th line (tagjs.src = “//s.btstatic.com/tag.js#site=ABC123”;) there is a zero width space character after the site id (W32Q8am”).
You can’t see it, but it’s there, and because it’s there, it prevents the snippet from correctly loading the site configuration, or even working at all. You can check by placing the cursor after the “am” in the side ID, then using the arrow keys to move it to the right.
Here is what it looks like on the only tool I found that actually correctly identifies its presence, www.dirtymarkup.com.
Apparently, this happens when code is copied to and from email clients that construct messages using HTML. This includes Gmail, so if you are using Gmail, this includes you.
So there you have it, invisible unicode characters. Feel free to leave a comment if you’ve experienced the same issue with zero width characters and if this solution was helpful to you!