Great advice Zach. I'll definitely do this. However, it would be nice to have an already-made conversion routine for UTF8 to UTF16. I'm hoping that most of the cases where I'm converting encodings will be when I'm going through another library where it has already been handled, like wxWidgets or boost. 

I never used it, nor heard that it works for what you want, I just remember that there is some Unicode stuff in Adobe's ASL: http://stlab.adobe.com/group__asl__unicode.html. Skimming through the source, it's probably header-only library (i.e. no linking), but I could be wrong.