I’m trying to display emoji characters in UMG, specifically characters from the Emoticon Block in the Supplementary Multilingual Plane, e.g. “” (U+1F608).
The good news is, it works! I can display the character above (using an appropriate emoji font) in a PC game build using Unreal Engine 5.0.3.
I’m confused though, because the documentation suggests that this shouldn’t work, as only the Basic Multilingual Plane is supported. This emoji character is not on the BMP.
All strings in UE are stored in memory in UTF-16 format as FStrings or TCHAR arrays. Most code assumes 2 bytes is one codepoint so only the Basic Multilingual Plane (BMP) is supported so Unreal’s internal encoding is more correctly described as UCS-2.
This forum post also suggests that surrogate pairs aren’t supported (or at least they weren’t back in 2018).
As to why this is working now, my guess is that Unreal has since fixed the support for surrogate pairs. Can you confirm if this is the case?
It would be great if the documentation were a bit clearer on this point.