Section courante

A propos

Section administrative du site

WideCharToMultiByte

kernel32.dll Caractère Unicode à multiple octets
Windows 9X, NT 3.1+, 2000, XP, 2003

Syntaxe

int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cchMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar);

Paramètres

Nom Description
CodePage Ce paramètre permet d'indiquer le code de page permettant d'effectuer la conversion
Constante Description
CP_ACP Cette constante permet d'indiquer le code de page ANSI de Windows
CP_MACCP Cette constante permet d'indiquer le code de page du système Macintosh
CP_OEMCP Cette constante permet d'indiquer le code de page du système OEM courant
CP_SYMBOL Cette constante permet d'indiquer le code de page de symbole (Windows 2000)
CP_THREAD_ACP Cette constante permet d'indiquer le code de page ANSI de Windows pour le processus léger courant (Windows 2000)
CP_UTF7 Cette constante permet d'indiquer qu'il faut forcer une transformation en un mécanisme 7 bits en UTF-7.
CP_UTF8 Cette constante permet d'indiquer le code de page UTF-8.
dwFlags Ce paramètre permet d'indiquer les options attribué au type de conversion
lpWideCharStr Ce paramètre permet d'indiquer un pointeur vers une chaîne de caractères Unicode à convertir
cchWideChar Ce paramètre permet d'indiquer la taille en caractères, de la chaîne de caractères spécifié par «lpWideCharStr».
lpMultiByteStr Ce paramètre permet d'indiquer un pointeur vers un tampon recevant la chaîne de caractères à convertir.
cbMultiByte Ce paramètre permet d'indiquer la taille, en octets, du tampon spécifié par «lpMultiByteStr».
lpDefaultChar Ce paramètre permet d'indiquer un pointeur vers le caractère utilisé quand il n'y a pas de représentation du code de page spécifié.
lpUsedDefaultChar Ce paramètre permet d'indiquer un pointeur vers un drapeau indiquant si la fonction a utiliser un caractère par défaut dans la conversion.

Description

Cette fonction permet de cartographier une chaîne de caractères Unicode en une nouvelle chaîne de caractères.

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. int main()
  6. {
  7.     wchar_t chaine[] = L"\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE";
  8.     wchar_t gladir[] = L"gladir.com";
  9.     char chaineNormal[255];
  10.     size_t tailleRequise = WideCharToMultiByte( 950, 0, chaine, -1, NULL, 0,  NULL, NULL);
  11.     printf("Octet requis pour l'encodage CP950 (avec la terminaison NUL): %u\n", tailleRequise);
  12.     tailleRequise = WideCharToMultiByte( CP_UTF8, 0, chaine, -1, NULL, 0,  NULL, NULL);
  13.     printf("Octet requis pour l'encodage UTF-8 (avec la terminaison NUL): %u\n", tailleRequise);
  14.     int result = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR) chaine, 2, chaineNormal, sizeof(chaineNormal), NULL, NULL);
  15.     printf("%s\n", chaineNormal);
  16.     result = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR) gladir, 2, chaineNormal, sizeof(chaineNormal), NULL, NULL);
  17.     printf("gladir.com = %s\n", chaineNormal);
  18.     return 0;
  19. }

on obtiendra le résultat suivant :

Octet requis pour l'encodage CP950 (avec la terminaison NUL): 7
Octet requis pour l'encodage UTF-8 (avec la terminaison NUL): 13
???¬?"
gladir.com = gl?¬?"


Dernière mise à jour : Dimanche, le 6 décembre 2015