Word’s Find can’t find all Unicode symbols and emoji

Office for Mere Mortals
Your beginners guide to the secrets of Microsoft Office
Invalid email address
Tips and help for Word, Excel, PowerPoint and Outlook from Microsoft Office experts.  Give it a try. You can unsubscribe at any time.  Office for Mere Mortals has been running for over 20 years, we've never, ever revealed or sold subscriber details.  Privacy policy

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 Unicode emoji!  And the Fin ^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)

Searching for ^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 ^u960

image 38 - Word’s Find can’t find all Unicode symbols and emoji

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).

image 40 - Word’s Find can’t find all Unicode symbols and emoji

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 Unicode Emoji are in the 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.

Workaround

Paste the symbol directly into the search box.

image 41 - Word’s Find can’t find all Unicode symbols and emoji

If necessary, use Insert | Symbol to put the symbol into the document. The Cut and Paste into the Find box.

VBA workaround

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)
image 43 - Word’s Find can’t find all Unicode symbols and emoji

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  

image 44 - Word’s Find can’t find all Unicode symbols and emoji

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
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

subs profile e1563205311409 - Word’s Find can’t find all Unicode symbols and emoji
Latest news & secrets of Microsoft Office

Microsoft Office experts give you tips and help for Word, Excel, PowerPoint and Outlook.

Give it a try. You can unsubscribe at any time.  Office Watch has been running for over 20 years, we've never, ever revealed or sold subscriber details.  Privacy policy
Invalid email address