Some Unicode characters cannot be shown in my browser.
I generated valid Unicode (utf8) characters but many of them are unable to be displayed. If they don't have representation, then why are they exist and how can I fix this? Thanks.
There are no glyphs available. Your display engine (browser) indicates this by displaying the hex number of the UTF-8 character. It uses the box to indicate this behavior. Your characters have been probably encoded incorrectly.
Edit:
Corresponding to utf-8 icons the character 0x0E5C belongs to the Thai subset of UTF-8. But there is no name for that character while the previous is named KHOMUT. So you used a reserved but not used character.
Additionally you need a font that includes the glyphs for the character. Since 05EC doesn't have a name at utf-8 icons it's possible that it is not included in your font.
Generally, a box containing a four-digit hex number is a common way of indicating lack of glyph for a character in the font(s) being used. But in this case, the data apparently contains code points that have not (yet) been assigned to characters at all, so fonts should not have any glyphs for them.
For example, the first problem case here has 0E5C in the box, so it indicates U+05EC, which is a reserved (unassigned) code point in Unicode at present. This means that it does not denote any character data and should not be used in a character string.
I fixed it the following way. I have this text: ['🠉','🠈','🠊','🠋'].
For me it looks like this:
.
I went to Google Fonts and click "Filter" button.
You will see a "Preview" textbox. I copied and pasted my text there.
.
Then you can see how this text will be displayed by different fonts. Some of them will contain the same boxes. But some will show actual characters.
I scrolled it down and finally found one which can display this.
It was "Noto Sans Symbols 2". It shows it like this:
.
I installed this font and the problem was fixed!