TextMeshPro rendering invisible unicode characters

I’m using TextMeshPro with Farsi language. I want to use the directional formatting characters to handle mixed texts (UAX #9: Unicode Bidirectional Algorithm). The characters have the desired effect on the directionality of text surrounding them. However TextMeshPro shows some glyphs for those supposedly invisible characters. (see attached).

I am generating my font asset from a Farsi font. The font and subsequently the atlas don’t have those characters in them. I haven’t been able to find any font file that contains those. It makes sense, those characters are supposed to be invisible.
Top one \u200F
Bottom one \u61C

I have a few questions at this point:

  • Am I missing something obvious like a checkbox I needed to check? (fingers crossed this is the case lol)
  • Where do these extra rendered glyphs come from? How come they are different for the two characters shown above?
  • Is there a workaround like hacking an invisible glyph + character into the font asset after it is generated?

I just added \u061C, \u200E and \u200F to the list of non visible characters in TMP. This will be included in the next preview release of TMP which will be available this week.

Although these will no longer render, TMP won’t do anything special when it encounters them so this is functionality that I will need to implement in the future along with proper support for RTL languages.

I am curious about the above. Can you provide me with a few sentences for testing?