UTF is just one of Unicode UTFs, one of the most practical one's in most cases, and standard de-factor for Internet and other uses. All UTFs represent 100% of all Unicode code point and have one-to-one correspondence but not trivial one. In Windows, presentation of Unicode stings in memory is UTF-16LE. Of course, if your try to interpret one UTF assuming this is some other UTF, you will totally mess up things.
On UTFs, please see:
http://en.wikipedia.org/wiki/Unicode[
^],
http://www.unicode.org[
^],
http://www.unicode.org/faq/utf_bom.html[
^],
http://en.wikipedia.org/wiki/Unicode[
^].
As to RTF, the presentation of Unicode in is it somewhat messed up. This is because RTF was created before Unicode was introduced. You can find further detain here:
https://en.wikipedia.org/wiki/Rich_Text_Format#Character_encoding[
^].
See also:
http://www.zopatista.com/python/2012/06/06/rtf-and-unicode/[
^].
From your question, is not clear how your character messed up, because you did not show your code and described the steps, but it's very likely. Same thing about the ways to untangle the problem: it is possible but depends on what was done. I think you can do it by yourself you if learn documentation and retreat your steps.
Despite of wide support of RTF on Microsoft platforms and libraries, you should understand that this is a proprietary format, and pretty much obsolete one. From the standpoint of Internet and WWW standards, using it… well, it cannot be considered as something serious.
—SA