[C] comment détecter les caractères BOM dans buffer char* ?

comment détecter les caractères BOM dans buffer char* ? [C] - C - Programmation

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

Reply

Marsh Posté le 24-08-2006 à 11:10:05   

Reply

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().


Message édité par Elmoricq le 24-08-2006 à 11:14:00
Reply

Marsh Posté le 24-08-2006 à 11:21:53    

réponse simple et efficace, merci beaucoup pour la rapidité!
:)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed