Rule LB12a was changed to disallow a break between BA and GL. The Line_Break assignment of FIGURE DASH and EN DASH was changed from HH to BA and SOFT HYPHEN from BA to HH for better linebreaking behavior for those characters.”
⇒ if a language has functionality for detecting line breaking points, it must choose between backwards compatibility and following this change.
4 comments
[ 0.28 ms ] story [ 15.5 ms ] threadIm not an expert but im guessing that java for example must be broken because its char type is 16 bits and unicode code points havelong passed 65k.
What may cause issues is that they may not know the character class of the newly added code points. That can affect such things as
- upper casing or lower casing strings
- sorting of strings
- matching Unicode digits in regular expressions
There also can be bug fixes/improvements/tweaks that affect behavior. For example, in this release, https://www.unicode.org/versions/Unicode18.0.0/#UAX_Changes states
“UAX #14 Unicode Line Breaking Algorithm
Rule LB12a was changed to disallow a break between BA and GL. The Line_Break assignment of FIGURE DASH and EN DASH was changed from HH to BA and SOFT HYPHEN from BA to HH for better linebreaking behavior for those characters.”
⇒ if a language has functionality for detecting line breaking points, it must choose between backwards compatibility and following this change.
For example they iterate characters and test as characters and not code points, so that logic will be broken on codepoints.