Recently I had to convert ISO-8859-1 data to UTF-8. The quick and easy way to do this is to use iconv from the command line. Unfortunately this had to be done from within a Visual C++/MFC application on Windows (so Cygwin wasn’t really an option). Fortunately, I found libiconv-win32. I installed the source and built the library (part of the process involves installing gettext for Win32 – just follow the instructions).
Since making libiconv-win32 part of the app’s project and adding the appropriate function calls, this app can now convert ISO-8859-1 data to UTF-8 (and back again).