1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| static char* iconv_(char* s, char* from_charset, char* to_charset) {
iconv_t cd = iconv_open(to_charset, from_charset);
char* retval = s;
if (cd != (iconv_t) (-1)) {
size_t s_len = strlen(retval);
/* the maximum expansion when converting happens when converting
tscii to utf-8; each tscii char can become up to 4 unicode chars
and each one of those unicode chars can be 3 bytes long */
char *buf = malloc(4 * 3 * s_len);
{
char *ptr = buf;
size_t ptr_len = 4 * 3 * s_len;
if ((iconv(cd, &s, &s_len, &ptr, &ptr_len)) != (size_t) (-1)) {
*ptr = 0;
retval = buf;
}
}
iconv_close(cd);
}
return strdup(retval);
}
cConvertString = iconv_(cValue, "UTF-8", "ISO-8859-1");
/* ecriture dans un fichier
*/
GL_WriteFile ("c:/poub/essai_char.txt", cConvertString); |
Partager