Y'all, why not leave out the UTF-8 byte stuff and just use the Unicode code point value? This stuff is easier to look up on emojipedia and does not nail you down to a single terminal setting.
# Don't pollute the return value in case we use it for something else
if ((_r == 0)); then
echo -n $'\U1F600' # 😀 Grinning Face, U+1F600
echo -n $'\U1F631' # 😱 Face Screaming in Fear, U+1F631
This stuff works everywhere with any encoding that knows how to encode these two characters. Yeah, for emoji this would only include the UTFs and the UTF-in-disguise GB18030 encoding, but it is still a way that more easily connects to well-known sources of emoji reference: code points.
$'...' thing is pretty much restricted to cool shells like bash and zsh.)