By default, Unicode variation selectors (U+FE0E text, U+FE0F emoji) are ignored
during comparison. Using the ks-identic locale extension key
enables identical-level collation, which treats them as distinct characters.
<?php
$textStyle = "\u{263A}\u{FE0E}"; // U+263A + U+FE0E (text presentation selector)
$emojiStyle = "\u{263A}\u{FE0F}"; // U+263A + U+FE0F (emoji presentation selector)
// Default locale: variation selectors are ignored, so the needle is found at position 0.
var_dump(grapheme_strpos($textStyle, $emojiStyle));
// With ks-identic: variation selectors are significant, so no match is found.
var_dump(grapheme_strpos($textStyle, $emojiStyle, 0, 'en_US-u-ks-identic'));
?>
The above example will output: