Здравствуйте.
Пытаюсь простой пример выполнить - не хочет работаь. На выходе пустая строка. Что не так с кодом, где ошибка?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iconv.h>
#include <errno.h>
char* convert(const char* s, const char* from_cp, const char* to_cp)
{
char* t = (char*)malloc(strlen(to_cp));
strcpy(t, to_cp);
iconv_t ic = iconv_open(strcat(t, "//IGNORE"), from_cp);
if (ic == (iconv_t)(-1)) {
fprintf(stderr, "iconv: cannot convert from %s to %s\n", from_cp, to_cp);
return "";
}
char* out = (char*)calloc(strlen(s), sizeof(char));
char* in = (char*)malloc(strlen(s));
strcpy(in, s);
size_t in_ln = strlen(s);
size_t out_ln = strlen(s);
size_t k = iconv(ic, &in, &in_ln, &out, &out_ln);
if(k < strlen(s))
fprintf(stderr, "iconv: %d of %d converted\n", k, strlen(s));
fprintf(stderr, "iconv: %s\n", strerror(errno));
iconv_close(ic);
free(t);
return out;
}
int main()
{
char* s = convert("Тестовая строка", "utf-8", "cp1251");
printf("CP1251: %s\n", s);
return EXIT_SUCCESS;
}
Ответ на:
комментарий
от Deleted

Ответ на:
комментарий
от ip1981
Ответ на:
комментарий
от Deleted

Ответ на:
комментарий
от ip1981
Ответ на:
комментарий
от Deleted



Ответ на:
комментарий
от php-coder

Ответ на:
комментарий
от Barlog_M

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум iconv: проблемы с переименованием. (2006)
- Форум Не получается iconv cp1251 > utf8 (2013)
- Форум Затык с iconv (на С) (2005)
- Форум C++/Странная работа iconv (2011)
- Форум iconv() function (2002)
- Форум iconv - почему получаю invalid argumests (2004)
- Форум cp1251<->utf8 через iconv (2003)
- Форум Поясните поведение mbstowcs (2010)
- Форум Не могу разобраться с ошибкой сегментирования (2017)
- Форум Segmentation fault (2009)