For multi-byte characters, you can split a text string at '' (the empty text block) to get a list of single symbols.
Then you have the challenge of mapping the symbols into sequences of bytes in UTF-8 code and reassembling them at the other end.
P.S. This thread may be relevant.