A reference converter from UTF-8/16/32 in C used to be available at ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/. This included the files ConvertUTF.h and ConvertUTF.c.
It was freely available and is incorporated into many open source projects. It's even recommended in Microsoft documentation: http://support.microsoft.com/kb/q232580/
But now it's gone! What's the story? Can is still be legally used? Was there a problem with it?