Edit: Ok, donc ce que vous voyez est UTF-8 données décodées comme Windows 1252 (donc les références de caractères numériques étaient un hareng rouge). Voici une démonstration en Python:
>>> u = ''.join(map(unichr, [1505, 1500, 1511, 1493, 1501]))
>>> s = u.encode('utf-8')
>>> print s.decode('cp1255', 'replace')
׳¡׳�׳§׳•׳�
La solution à ce problème dépend de l'environnement dans lequel la sortie est affichée. Le simple fait de sortir les octets reçus et d'attendre qu'ils soient interprétés comme des caractères conduit à des problèmes comme celui-ci.
Un document HTML contient généralement une balise d'en-tête telle que <meta charset=utf-8>
pour indiquer au navigateur quel devrait être son codage. Un document servi par un serveur Web contient un en-tête HTTP tel que Content-Type: text/html; charset=utf-8
.
Vous devez demander à libcurl l'en-tête HTTP Content-Type
pour connaître l'encodage du document, puis le convertir en codage système à l'aide de iconv. Bien que dans votre cas ce soit la page de code 1255, cela dépend du système de l'utilisateur et vous devriez donc rechercher les fonctions appropriées pour le détecter.
(Lire Unicode and Character Sets et l'étiquette character-encoding sur ce site pour une foule d'informations supplémentaires.)
Quel système utilisez-vous pour dire cela? Avez-vous un support pour les caractères hébreux? –