
I would recommend the IBM ICU library[1] as I believe it is currently the best C++ Unicode support library. Its interface does not match that of Boost libraries or the C++ Standard library, but I don't believe there are any decent Unicode libraries with a better interface. There has been some discussion on this list regarding creating a Boost Unicode library, but currently such a Boost library does not exist.
[1] http://www-306.ibm.com/software/globalization/icu/index.jsp
I would also recommend ICU and point out that: regex will now work with ICU and handle UTF-8 UTF-16 or UTF-32 input via some new "Unicode aware" interfaces. There are some unofficial iterator adapters in boost/regex/pending/unicode_iterator.hpp that will convert between various Unicode encodings "on the fly": for example they can be used to make a UTF-8 sequence appear "as if" they were a UTF-32 sequence or whatever. HTH, John.