#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <iconv.h>
#include <errno.h>
#define BUFFER_SIZE 4096
static char* wchartoutf8(wchar_t* input) {
char *output
= malloc(BUFFER_SIZE
); iconv_t foo = iconv_open("UTF-8", "WCHAR_T");
size_t ilen
= wcslen(input
) * sizeof(wchar_t); size_t olen = BUFFER_SIZE;
int r = iconv(foo, (char**)&input, &ilen, &output, &olen);
if(r < 0)
return output;
}
int main()
{
printf("str: %s\n", wchartoutf8
(L
"чёзанахуй?")); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHdjaGFyLmg+CiNpbmNsdWRlIDxpY29udi5oPgojaW5jbHVkZSA8ZXJybm8uaD4KCiNkZWZpbmUgQlVGRkVSX1NJWkUgNDA5NgoKc3RhdGljIGNoYXIqIHdjaGFydG91dGY4KHdjaGFyX3QqIGlucHV0KSB7CiAgY2hhciAqb3V0cHV0ID0gbWFsbG9jKEJVRkZFUl9TSVpFKTsKICBpY29udl90IGZvbyA9IGljb252X29wZW4oIlVURi04IiwgIldDSEFSX1QiKTsKICBzaXplX3QgaWxlbiA9IHdjc2xlbihpbnB1dCkgKiBzaXplb2Yod2NoYXJfdCk7CiAgc2l6ZV90IG9sZW4gPSBCVUZGRVJfU0laRTsKICBpbnQgciA9IGljb252KGZvbywgKGNoYXIqKikmaW5wdXQsICZpbGVuLCAmb3V0cHV0LCAmb2xlbik7CiAgaWYociA8IDApCglwZXJyb3IoImljb252Iik7CiAgcHJpbnRmKCJMRU49JWRcbiIsIHIpOwogIHJldHVybiBvdXRwdXQ7Cn0KCmludCBtYWluKCkKewogICAgICAgIHByaW50Zigic3RyOiAlc1xuIiwgd2NoYXJ0b3V0ZjgoTCLRh9GR0LfQsNC90LDRhdGD0Lk/IikpOwogICAgICAgIHJldHVybiAwOwp9