@Sven Groot: I've wrtten my own string class which stores strings as reference couted unicode strings. It has constructors to handle a few different string types, and as you know with c++ this allows you to construct an object with a simple assignment.
That doesn't really answer my question. How are you storing the unicode strings? Which character type and which encoding? How are you handling conversions?