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 become "blank" in iPhone.
Fonts with Variation Selectors are used for displaying alternative Chinese characters reprensenting different pronoucation and different stroke styles.
Screen capture from an issue case in iOS 17.3 (bad):
Screen capture from a good case in other OS (good):
Reproduce steps:
- Download a "Variation Selectors" supported TTF font
https://github.com/ButTaiwan/bpmfvs/releases/download/v1.400/BpmfZihiKaiStd.zip
-
Unzip the ttf font file "BpmfZihiKaiStd-Regular.ttf" from the zip to a folder
-
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>
-
Upload the files to a web server
-
Browser the "index.html" with an iOS 17.3 iPhone 14 or 15
-
There should be a character displayed in each table cells. But with iOS 17.3, two of the cells are blank.
Reference: opensource IVS TTF font github: "BpmfZihiKaiStd" TTF Font file download : https://github.com/ButTaiwan/bpmfvs/releases/download/v1.400/BpmfZihiKaiStd.zip
"Variation Selectors Supplement" is supported by all other OS (Windows, Android, Linux, old iOS, macOS), see :
wiki : Variation Selectors Supplement https://en.wikipedia.org/wiki/Variation_Selectors_Supplement
wiki : Variant form (Unicode) https://en.wikipedia.org/wiki/Variant_form_(Unicode)
...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.
I've encountered the same issue.
After testing, we found that running 17.4 (Beta1 ~ RC) on the simulator works fine.
Xcode 15- Beta and iOS 17.4 can be found in: https://developer.apple.com/download/all/
Maybe this problem has been resolved in iOS 17.4?(Running 17.4 RC on an actual iPhone 15 also displays correctly.)
Hope this information is helpful to you.