comment détecter les caractères BOM dans buffer char* ? [C] - C - Programmation
Marsh Posté le 24-08-2006 à 11:13:26
const char BOM_UTF8[] = { 0xEF, 0xBB, 0xBF, '\0' };
Et tu n'as plus qu'à tester ça avec la zone qui va bien à coup de strcmp().
Marsh Posté le 24-08-2006 à 11:21:53
réponse simple et efficace, merci beaucoup pour la rapidité!
Marsh Posté le 24-08-2006 à 11:10:05
Bonjour,
J'ai un souci. J'ai un fichier bufferisé dans un char*.
Mais sur certains fichiers, j'ai droit aux caractères unicode qui spécifie l'encoding du fichier (utf-8, utf-16 etc...).
La représentation UTF-8 du BOM est la séquence d'octets EF BB BF, qui apparaît en encodage ISO-8859-1 comme "" dans les éditeurs de textes et navigateurs mal préparés pour traiter l' UTF-8.
Encoding Representation
UTF-8 EF BB BF
UTF-16 Big Endian FE FF
UTF-16 Little Endian FF FE
UTF-32 Big Endian 00 00 FE FF
UTF-32 Little Endian FF FE 00 00
SCSU 0E FE FF
UTF-7 2B 2F 76
Or ce que je dois faire c'est repérer si ce BOM est présent et dans ce cas, l'enlever de mon buffer.
Le problème est que je ne sais absolument pas comment faire pour comparer mes char à ces octets de BOM.
Y aurait il une âme charitable pour m'aider ?
Merci