Is there any way to convert between ISO8859 (8 bit char characters) and wide_t characters in the standard libaries? Bearing in mind that I could be dealing with non-ansi character sets.

Also I note that the basic_string class does not seem to have upper and lower case methods. So how would I convert a wstring to upper case? Is this something I would need to do my self using my own unicode lookup table? Or is there a standard way of doing this?