патчу vsftpd, чтобы имена файлов из кодировки UTF-8 в CP1251 переводил.
сначала изменил функцию вывода списка файлов, все работало. потом изменил функцию обработки входящих команд - здесь несмотря на copy-paste iconv_open выдавал invalid arguments.
теперь просто хочу написать функцию, которая будет конвертировать заданную строку из одной кодировки в другую. но она тоже вылетает на iconv_open с invalid aruments, с параметрами "CP1251", "UTF-8", хотя отдельно написанная программа отлично перекодирует из юникода в cp. точно таким же способом.
хотел посмотреть, что скажет strace, но vsftpd при подключении клиентов форкается, и strace молчит..
void
str_iconv(struct mystr* p_str, char *to_enc, char *from_enc)
{
iconv_t cd;
char tmp[1024], *to_buf, *from_buf;
size_t sz_from, sz_to, nconv;
cd = iconv_open((const char *)to_enc, (const char *)from_enc);
if (cd == (iconv_t)(-1)) {
str_append_text(p_str, strerror(errno));
str_syslog(p_str, 1);
return;
}
from_buf = (char*)str_strdup(p_str);
to_buf = tmp;
sz_from = str_getlen(p_str);
sz_to = 1023;
nconv = iconv(cd, &from_buf, &sz_from, &to_buf, &sz_to);
iconv_close(cd);
str_empty(p_str);
str_append_text(p_str, tmp);
}
Ответ на:
комментарий
от Dead
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от x029ah
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум c и iconv - помогите разобраться (2008)
- Форум Не получается iconv cp1251 > utf8 (2013)
- Форум iconv() function (2002)
- Форум C++/Странная работа iconv (2011)
- Форум Затык с iconv (на С) (2005)
- Форум cp1251<->utf8 через iconv (2003)
- Форум Юникод чтение и запись в файл с произвольной кодировкой (2017)
- Форум Помогите разобраться с libiconv (2012)
- Форум [C] Проблема с towlower и кодировками. (2010)
- Форум Поясните поведение mbstowcs (2010)