JDK-8309565 : [Text] Enhance support for user-perceived characters (grapheme clusters)
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: graphics
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2023-06-06
  • Updated: 2024-05-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
JDK-8291660 (jdk20) enhanced character iterator to handle grapheme clusters (a.k.a. user-perceived characters per https://unicode.org/reports/tr29/ ), yet javaFX renders these clusters as a sequence of symbols.

For example:

🤦🏼‍♂️ - \ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f
☝🏿- \u261d\ud83c\udfff
🇯🇵 - \ud83c\uddef\ud83c\uddf5
❤️ - \u2764\ufe0f

I think we need to bring javafx in line with the latest BreakIterator behavior.  
Comments
Don't forget grapheme clusters in RTL mode (see the sceenshot). ``` \ud83c\uddfa\ud83c\udde6\u2764\ufe0f\ud83c\uddfa\ud83c\uddf8\ud83e\udd8b\ud83c\udfc1\ud83d\udd25 ```
08-02-2024

BreakIterator understanding these sequences is need for text processing and line breaking and we automatically inherited that from JDK 20's update. But this RFE is about rendering of Emoji sequences and that's a different matter. BreakIterator may make it marginally easier in some cases but isn't "enabling" it either.
08-06-2023