25 lines
923 B
Plaintext
25 lines
923 B
Plaintext
:sig
|
|
StringList split_utf8(String str, bool compound_characters = false)
|
|
|
|
|
|
:params
|
|
str : string to be split
|
|
compound_characters : optional, if true tries to combine compound characters
|
|
return value : a list of Unicode characters
|
|
|
|
:desc
|
|
Splits the string 'str' into its constituent Unicode code points.
|
|
|
|
If 'compound_characters' is true, split_utf8 will attempt to combine compound characters based on very simple rules:
|
|
<li>combine characters if they're connected by a Zero-Width Joiner (ZWJ) character</li>
|
|
<li>combine two characters if they're both a Regional Indicator Symbol Letter</li>
|
|
<li>if a character is a Variation Selector, append it to the previous character</li>
|
|
<li>in all other cases, characters remain on their own</li>
|
|
|
|
:see
|
|
>string
|
|
|
|
:related
|
|
**PHP:** `preg_split(//u, ...)`, `mb_*` helpers, or grapheme-aware libraries
|
|
**JavaScript / Node.js:** `Array.from(str)` or iterator-based Unicode-aware splitting
|