Hi!
You move 20 bytes behind ar[0] to the string.
This is illegal.
But there is a good chance that you move the first 20 bytes of your array.
So the string starts with $CEBA
This is a legal UTF8 character namely the small greek kappa:
κThere is a good chance that the other bytes build legal utf8 characters.
Move only one byte to your string and you get an illegal UTF8 string:
move(ar[0], u8str[1], 1);
Winni