UTF-16 surrogate pairs support for utf8_encode/decode