Если на вашей платформе wchar_t
хранится юникод (если это 32-битный тип, вероятно, он есть) и у вас есть локаль UTF-8, вы можете позвонить mbrtowc
(из C90.1).1004 *
Для большей гибкости вы можете вызвать интерфейс iconv .
char s[] = "\303\210";
iconv_t cd = iconv_open("UTF-8", "UCS-4");
if (cd != -1) {
char *inp = s;
size_t ins = strlen(s);
uint32_t c;
uint32_t *outp = &c;
size_t outs = 0;
if (iconv(cd, &inp, &ins, &outp, &outs) + 1 >= 2) printf("%lx\n", c);
iconv_close(cd);
}