Search Issue Tracker
[iOS 13.0] Some languages symbols are replaced with a [?] marks
1. Download attached "Thai Font Issue Example.zip" project and open in Unity
2. Build for iOS
3. Deploy the Xcode project to the iOS device
Expected results: Every character should be shown correctly - in this case, there are Thai symbols and they should be shown correctly
Actual results: Some characters got replaced by [?] marks - in this case, all Thai symbols are replaced
- This issue happens only on iOS with 13.0 and above version
- This issue does not reproduce on iOS 12.x and lower, Android (Mono and IL2CPP) and Standalone
- This is also reproducible with Armenian, Thai & Georgian.
- This issue does not reproduce on Vietnamese, Uzbek, Urdu, Ukrainian, Arabic, Bangla, Turkish, Tibetan, Uyghur, Uzbek, Tajik, Sindhi, Greek, Tongan, Telugu, Sindhi (Devanagari), Santali (Devanagari), Dogri, Faroese, Hebrew, Indonesian, Kasmiri (Devanagari), Bodo, Bangla, Central Kurdish, Kashmiri (Naskh), Lao, Kyrgyz and etc. languages
- iPhone 7, iOS: 12.3.1 - Not Reproduced
- iPhone 8 Plus, iOS: 12.0 - Not Reproduced
- iPhone X, iOS: 11.3.1 - Not Reproduced
- iPhone XR, iOS: 12.0 - Not Reproduced
- iPad Pro 3rd Gen, iOS: 13.0 - Reproduced
Reproduced on Unity 2017.4.0f1, 2017.4.32f1, 2018.4.8f1, 2019.2.6f1, 2019.3.0b3 and 2020.1.0a4
The default font Unity was using to render Armenian, Georgian and Thai languages was removed in iOS 13. Apple currently provides other fonts for these languages (for instance "Thonburi" for Thai), however Unity's font rendering system (both for uGUI and TextMeshPro) does not properly render diacritical symbols for these fonts. Currently Unity only correctly renders fonts which allow referencing the combined mark instead of the base character and the diacritical mark separately.
We have plans to support diacritical marks from system fonts in TextMeshPro in the future. However currently this means that if you wish to support any in the mentioned languages you'll have to provide your own fonts (basically all custom fonts which are correctly rendered in the Editor should also work on iOS).
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- ShaderUtil.GetShaderData(shader).SubshaderCount does not count unsupported subshader
- GameObject.GetComponents returns the wrong number of components
- GUI button looks different from Editor in a Build
- Live Profiler Timeline keeps losing frame data while scrolling inside Profiler window
- Input.mouseScrollDelta.y is not correctly mapped to mouse wheel when running an iOS app on Apple Silicon Mac