Bonjours a tous.

Mon problème est le suivant:
Pour des raisons de compatibilités je dois convertir du text UTF8 en iso 6937-2 "Coded character sets for text communication"

J'ai donc fait une jolie fonction de conversion en utilisant WideCharToMultiByte (cf. ci après). Et ça marche bien pour tous les identifieurs de page exceptés - évidemment - celle qui m’intéresse c.a.d la 20269 (qui correspond a iso 6937. Pas le 2 mais je n’ai pas trouvé mieux).
J'ai essayé de changer les options mais rien n'y fait.
Si quelqu'un a une idée ça serait vraiment génial car la je sèche un peu.
Merci d'avance

alain.

PS: si quelqu'un sait faire ce genre dans un autre langage je suis preneur également
---

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
 
string codageDataUTF8_TO_ISOX(int code, LPCSTR csUTF8)
{
	try {
 
		int lenUTF8 = (int)strlen(csUTF8);
		wchar_t wc[MAXWIDECHAR];
		memset(wc,0,MAXWIDECHAR*sizeof(wchar_t));
 
		//UTF8 -> WIDECHAR
		int iRet= MultiByteToWideChar(
			CP_UTF8,         	     // code page
			MB_ERR_INVALID_CHARS,	//0, // character-type options
			csUTF8, 		       // string to map
			lenUTF8,       		       // number of bytes in string
			wc,  			         // wide-character buffer
			MAXWIDECHAR-1         // size of buffer
			);
		if (!iRet){
			// display error
			// ...bla bla..
			return "";
		}
 
 
		// WIDECHAR -> code
		int lenWC = (int)wcslen(wc);
 
		char c[MAXISOCHAR];
		memset(c,0,MAXISOCHAR);
		//LPCSTR p="\x27";
		LPCSTR p="'";
		iRet=WideCharToMultiByte(
			code,              // code page-
			0,            	      // performance and mapping flags
			wc,   	 	     // wide-character string
			lenWC,            // number of chars in string
			c,     		     // buffer for new string
			MAXISOCHAR-1,   // size of buffer
			p,		     // NULL,     // default for unmappable chars
			NULL  		   // set when default char used
			);
 
 
 
		if (!iRet){
			// display error
			// ...bla bla..
			return "";
		}
		return c;
 
	}
	// catch 
	// ....bla bla
	catch (...) //to be sure 
	{
		// ....bla bla
	}
}