comment savoir si unicode ou ascii

comment savoir si unicode ou ascii - C++ - Programmation

Marsh Posté le 14-03-2003 à 11:35:13    

comment peut on savoir si un fichier text a ete enregistrer en unicode ou en AScii voir meme utf-8 sans avoir a l'editer avec uEdit ou Notepad...
 
ma deuxieme question et comment faire alors pour changer ce format encore une fois sans utiliser un editeur de text
 
 
voila si vous avez un petit proc qui le fait voir un petit bout de code ca m'interesse
 
merci  
TerTuli@

Reply

Marsh Posté le 14-03-2003 à 11:35:13   

Reply

Marsh Posté le 14-03-2003 à 11:56:17    

heu pas besoin de faire plusieurs topics...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-03-2003 à 13:12:37    

Pour les fichiers en UNICODE, il me semble qu'ils débutent par 0xFEFF ou 0xFFFE, donc c'est pas trop compliqué (encore que, à ma connaissance, ca concerne l'UNICODE codé sur 2 octets (UTF-16?), alors que le jeu complet de l'UNICODE est codé sur 4 octets).  
 
Pour détecter un fichier encodé en UTF-8, c'est plus compliqué, il faut détecter des séquences propres à l'UTF-8, genre 110xxxxx 10xxxxxx 10xxxxxx, en sachant qu'en UTF-8, tout octet > 127 ne peut que faire partie d'une séquence de ce type...C'est un peu chiant, mais comme l'UTF-8 est justement utilisé pour qu'un texte soit au moins partiellement lisible par un éditeur qui n'a pas prévu de décodage UTF-8, c'est à ma connaissance le seul moyen...
 
Pour passer d'un format à l'autre...
ASCII -> UNICODE sur 2 octets : 0x00nn avec nn code ascii
ASCII -> UTF-8, rien à faire
UTF-8 <-> UNICODE :  cherche sur google les sources de tidy, c'est pas super compliqué, mais il faut avoir des notions de manipulations binaires...et cherche sur google des docs sur UTF-8 et UNICODE, il y'a des codes invalides en UNICODE etc...
 
voila, vérifie ces infos en tout cas, c'est juste pour te donner une idée, je te sors ca de mémoire donc...
 
bonne chance

Reply

Marsh Posté le 14-03-2003 à 16:05:53    

merci bien
 
et pour info si j'ai fait plusieurs topic c simplement que je cherche une solution soit en C soit avec un Bath.  
voila voila

Reply

Marsh Posté le 14-03-2003 à 17:06:58    

Je ne sais pas si ça peut t'aider, mais sous Windows tu as la fonction IsTextUnicode qui doit faire ce que tu souhaites.


---------------
each day I don't die is cheating
Reply

Sujets relatifs:

Leave a Replay

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