Date 2024-Feb-11
Title Unicode characters with "variation selectors" are not render propery in iPhone Safari browser (webkit) with iOS 17.3
Environment iPhone 14/15, iOS 17.3
Description Unicode characters with "Variation Selectors Supplement" code can be rendered correctly in all iPhone before iOS 17.3 . But in iOS 17.3, these characters becomes "blank" in iPhone.

"Variation Selectors Supplement" is supported by all other OS (Windows, Android, Linux, old iOS, macOS), see :
wiki : Variation Selectors Supplement
wiki : Variant form (Unicode)
Fonts with Variation Selectors are used for displaying alternative Chinese characters reprensenting different pronoucation and different stroke styles.
...Variation Selectors Supplement is a Unicode block containing additional variation selectors beyond those found in the Variation Selectors block. These combining characters are named variation selector-17 (for U+E0100) through to variation selector-256 (U+E01EF), abbreviated VS17 – VS256.
Reproduce steps
  • 1. Download a "Variation Selectors" supported TTF font
  • https://github.com/ButTaiwan/bpmfvs/releases/download/v1.400/BpmfZihiKaiStd.zip
  • 2. Unzip the ttf font file "BpmfZihiKaiStd-Regular.ttf" from the zip to a folder
  • 3. In the same folder, create an file "index.html" with the following content:
  • <head>
    <meta charset="utf-8">
    <style>
    @font-face { font-family: zihaibpmf; src: url('BpmfZihiKaiStd-Regular.ttf'); }
    </style>
    </head>
    <body>
    <table class="redboder" border>
    <tr><td>
    Unicode Text
    </td><td style="font-family:zihaibpmf;">一</td><td style="font-family:zihaibpmf;">一󠇡</td><td style="font-family:zihaibpmf;">一󠇢
    </td></tr><tr><td>	 
    Unicode Hex Code</td><td>
    0x4E00</td><td>0x4E00 0xE01E1</td><td>0x4E00 0xE01E2
    </td></tr>
    </table>
    </body>
    		
  • 4. Upload the files to a web server
  • 5. Browser the "index.html" with an iOS 17.3 iPhone 14 or 15
  • 6. There should be a character displayed in each table cells. But with iOS 17.3, two of the cells are blank.
Expected Result (good) Unicode Characters with Variation Selectors code and and IVS font, should be displayed.
Actual Result (bad) Unicode Characters with Variation Selectors code and and IVS font, are only displayed as blank.
Reference
TTF Font with "variation selectors" support
opensource IVS TTF font github: "BpmfZihiKaiStd"
TTF Font file download : https://github.com/ButTaiwan/bpmfvs/releases/download/v1.400/BpmfZihiKaiStd.zip
Example in text
Unicode Text 一󠇡一󠇢
Unicode Hex Code 0x4E000x4E00 0xE01E10x4E00 0xE01E2
Screen capture from an issue case in iOS 17.3
Screen capture from a good case in other OS