What C++ string classes/systems exist that have good unicode support and a decent interface?
<p>Using strings in C++ development is always a bit more complicated than in languages like Java or scripting languages. I think some of the complexity comes from a performance focus in C++ and some is just historical.</p>

<p>I know of the following major string systems and would like to find out if there are others and what specific drawbacks they have vs. each other:</p>

<ul>
<li>ICU : <a href="http://userguide.icu-project.org/strings#TOC-Using-Unicode-Strings-in-C-" rel="nofollow">http://userguide.icu-project.org/strings#TOC-Using-Unicode-Strings-in-C-</a></li>
<li>GLib::ustring : <a href="http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-basics-ustring.html.en" rel="nofollow">http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-basics-ustring.html.en</a></li>
<li>MFC CString : <a href="http://msdn.microsoft.com/en-us/library/5bzxfsea%28VS.100%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/5bzxfsea%28VS.100%29.aspx</a></li>
<li>std::basic_string : <a href="http://www.cplusplus.com/reference/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/</a></li>
<li>QT QString : <a href="http://doc.qt.nokia.com/4.6/qstring.html#details" rel="nofollow">http://doc.qt.nokia.com/4.6/qstring.html#details</a></li>
</ul>

<p>I'll admit that there can be no definite answer, but I think SOs voting system in uniquely suited to show the preferences (and thus the validity of arguments) of people actually using a certain string system.</p>

<hr>

<p>Added from answers:</p>

<ul>
<li>UFT8-CPP : <a href="http://utfcpp.sourceforge.net/" rel="nofollow">http://utfcpp.sourceforge.net/</a></li>
</ul>
