Word has a way of finding Unicode symbols by their reference number, except it doesn’t work for many symbols and not at all for emoji! And the Find ^u option is inconsistent with the rest of Word and common practice.
These bugs have been in Word for a few years now with no sign of it being fixed. We’ll explain the bugs, why they are there and how to work around it.
Find can ‘see’ higher range Unicode symbols.
Word’s Find has a way to search for symbols by their Unicode number value.
It’s ^u<Unicode decimal value)
^u0040 will find the @ symbol.
That’s more useful finding Unicode characters above the 255 ASCII range. For example, find Pi symbol π by searching for
Find is decimally inconsistent
The strange thing about
^u find is requiring Decimal values to search by.
Unicode characters are normally stated as Hexadecimal (base 16) values. Decimal is OK and sometimes quoted as well but it’s less common.
More importantly, Word itself uses Hex values for all other Unicode references! Insert Symbol lets you select characters by entering the Unicode (Hex) value. No mention of Unicode (decimal).
The fast way to enter symbols – the old Alt + X trick – uses Hex values.
So why the &%$! does Find revert to decimal? It makes customers do a Hex to Decimal conversion. Grrrrr.
Find can’t cope with larger numbers
Find has another problem with the
^unnnn search. Higher Unicode values don’t work.
For example, we tried looking for the first listed Emoji, the Grinning Face Emoji 😀 (Unicode Hex:1F600 Dec:128512) and Word can’t find it.
^u128512 should work but doesn’t.
Find in Word can only find the first 65,535 Unicode characters (Hex FFFF) using the ^u<decimal value> option provided.
That might seem like a lot, but the Unicode standard has 143,859 named characters and growing each year.
All Emoji are in the Word Find ‘hidden’ zone, starting at decimal 128512.
Same in problem in Word VBA
You might think that Word VBA would be a workaround, but no.
In theory ChrW() should return any character given the decimal or hexadecimal value. But no, ChrW is also limited to 65,535. There is a workaround, as we’ll see below.
Bug in Word
It’s a problem because there’s no error message. Word returns ‘no matches’ for any search of higher Unicode characters, not an ‘invalid’ or ‘out of range’ warning. It gives the customers a false result, leading them to believe a certain symbol or emoji is not present.
That’s why this is a definite bug and a bug of long-standing. Microsoft’s apologists might say it’s ‘by design’ but if that’s the case it was a stupendously poor design decision.
Why the bug is in Word
Most likely, Microsoft developers haven’t considered all the consequences of the expanding Unicode range, especially into Emoji. The current Find and ChrW() limit was probably set many years ago when 65K characters was more than enough.
Or developers have noticed the problem, but Microsoft management aren’t willing to spend the money necessary to fix it. After all, it’s not cloud related and that’s all which seems to matter at Redmond these days.
There’s also a reluctance to fix the bug because any software update would admit there was a bug at all and that it had been there for years.
Pasting the symbol directly into the search box might work.
If necessary, use Insert | Symbol to put the symbol into the document. The Cut and Paste into the Find box.
However that doesn’t always work. It depends on how the emoji or symbol was inserted into the document.
ChrW() has a maximum value of 65,535 but there’s a workaround. If you use Record Macro to find a high-end symbol or emoji you’ll see the workaround in action.
To find Grinning Face Emoji, the recorded macro does this:
.Text = ChrW(55357) & ChrW(56832)
Finding the first five digit Unicode value (Deseret Capital Letter Long I) is done via:
.Text = ChrW(55297) & ChrW(56320)
How we proved it
A simple but tedious series of tests. We entered various high value Unicode characters into a Word document (via Insert | Symbol) then searched for them with Find using ^unnnn
We narrowed it down to these two characters.
Found by Word
The Unicode symbol with highest four digit Hex value as shown with Insert | Symbol.
︦ Hex:FE26 Dec: 65062 Combining Conjoining Macron
NOT found by Word
The ‘next’ available symbol as shown in Insert | Symbol. In other words, the first Unicode symbol with five digit Hex value
? Hex:10400 Dec:66560 Deseret Capital Letter Long I
It didn’t take long because we suspected that the problem would be a number range limit, either Hex or Decimal.
A little surprising that the range limit is Hex not Decimal. It suggests that the Word code is converting the given Decimal value into Hex (but limiting valid results to four digit Hex).
The Old Alt + X trick
Emoji Panel is part of Windows that totally sucks
Thinking Face 🤔 emoji in Word and Office
Rolling on the Floor laughing ? emoji in Word, Outlook, Office
Office Function key alternatives
Section Symbol § in Word, Excel, PowerPoint and Outlook
Ellipsis … symbol in Word, Excel, PowerPoint and Outlook
Biohazard symbol for Word, PowerPoint and more