Есть такая програмка
#include <stdio.h>
#include <iconv.h>
#include <errno.h>
#include <err.h>
#include <string.h>
#include <libintl.h>
int main() {
textdomain("libiconv");
iconv_t cd;
size_t k, f, t;
int se;
char *code = "Вопрос!";
char* in = code;
char buf[100];
char* out = buf;
cd = iconv_open("WINDOWS-1251","UTF8");
if( cd == (iconv_t)(-1) )
err( 1, "iconv_open" );
f = strlen(code);
t = sizeof buf;
memset( &buf, 0, sizeof buf );
errno = 0;
k = iconv(cd, &in, &f, &out, &t);
se = errno;
printf( "converted: %u,error=%d\n", (unsigned) k, se );
printf("string: %s\n", buf);
iconv_close(cd);
return 0;
}
так в ней iconv спотыкается!
хотя если заменить
cd = iconv_open("UTF8","WINDOWS-1251");
тогда все путем
вопрос ! почему не поддерживается utf8 -> utf8?