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 : Sélectionner tout - Visualiser dans une fenêtre à part
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