[resolu]conversion Unicode -> ASCII
salut, je suis en train de (essayer de) réaliser une fonction qui converti une chaine Unicode en ASCII.
J'ai compris le codage unicode, mais je tombe sur un pb tout bete :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
while(*srcPt!='\0'){
if(*srcPt>0x7F){
printf("SUPERIEUR");
}
if(*srcPt< 0x7F){
printf("0x%x ",*srcPt);
*dstPt=*srcPt;
srcPt++;
dstPt++;
}
else {
srcPt++;
*dstPt=0xC0 + (*srcPt-0x80);
srcPt++;
dstPt++;
}
} |
meme si le char pointé par srcPt est > a 0x7F, ca n'ecrit jamais "superieur" alors que si on remplace *srcPt par par exemple 0xffffffc3 (c'est une des valeur imprimée par le second printf), ca marche ...
J'ai aussi repéré un truc bizarre, c'est que le second printf me renvoie 1 ou 4 octet, selon que le caractère soit respectivement "normal" (<127) ou non.
D'ou mes 2 questions :
- si qq'un a deja cette fonction sous le coude, je suis preneur.
- pourquoi le test *srcPt< 0x7F ne fonctionne pas?
merci