Martin, you could try the Windows API WideCharToMultiByte
I don't know if it will work but it's worth a try. You can set CP_UTF8 as the codepage.
EDIT:
WCHAR wc[2];
char c[6] = {0}, s[20];
int n;
wc[0] = L'§';
wc[1] = L'\0';
n = WideCharToMultiByte(CP_UTF8, 0, // performance and mapping flags
wc, // wide-character string
1, // number of chars in string
c, // buffer for new string
6, // size of buffer
NULL, // default for unmappable chars
NULL); // set when default char used
sprintf(s, "%d %d %hhx %hhx", n, strlen(c), c[0], c[1]);
MessageBox(0, s, "Test", MB_OK);
c[0] and c[1] are displayed as c2 and a7
John