Yes and no. RTF is a very old format, created well before Unicode was introduced. Take your Unicode-enabled Windows and type some Unicode characters in Wordpad.exe. Save it. Look at the RTF using some plain-text editor — you will see no trace of Unicode. The same RTF has different interfaces; when the application is run on Unicode-enabled system, you can copy text and it will be paste as Unicode. You can make the component non-Unicode by
not defining
_UNICODE
in your project. See
http://www.i18nguy.com/unicode/c-unicode.html[
^].
Now, let's see if it makes any sense. If you already provide Rich text control to the user, the use can type anything. Then you use the produced formatted text somehow and what? — if the user types text using Unicode code point using installed input method, do you want these characters to be converted to '?' characters?
No, these days using non-Unicode strings cannot be self-consistent, especially with RTF where the user cannot immediately detect that Unicode is not supported, will continue typing and — what a frustration! Think about it. This is possible, but incorrect.
[EDIT]
In principle, you can filter each and every typed character and allow only certain subset of characters. A bid hassle. Supporting Unicode is much easier.
Again, what you type in Rich text editor is internally not Unicode. But when you save it as text, it will be saved as Unicode text, or in non-Unicode compilation, with '?' replacing non-ANSI characters.
—SA