UDF > WinAPIEx > Conversion >


_WinAPI_WideCharToMultiByte

Convertit une chaîne UTF-16 (caractères larges) en une chaîne multi-octets

#include <WinAPIConv.au3>
_WinAPI_WideCharToMultiByte ( $vUnicode [, $iCodePage = 0 [, $bRetNoStruct = True [, $bRetBinary = False]]] )

Paramètres

$vUnicode Chaîne, DllStruct ou Pointeur sur une structure de tableau d'octets contenant le texte à convertir
$iCodePage [optionnel] La page de code à utiliser dans la conversion:
    0 - La page de code Windows ANSI du système actuel
    1 - La page de code OEM du système actuel
    2 - La page de code Macintosh du système actuel
    3 - La page de code Windows ANSI pour le thread courant
    42 - La page de code Symbol
    65000 - UTF-7
    65001 - UTF-8
$bRetNoStruct [optionnel] Flag qui indique s'il faut retourner une String/Binary ou une DllStruct (par défaut True: String/Binary)
$bRetBinary [optional] Flag qui indique s'il faut retourner une Binary String ou une String (par défaut False: String)

Valeur de retour

Succès: Retourne un string/binary ou une DllStruct contenant une string/binary multi-octets
Échec: Définit @error <> 0, appelez _WinAPI_GetLastError() pour obtenir des informations supplémentaires sur l'erreur.

Remarques

Mappe une chaîne UTF-16 (caractères larges) en une nouvelle chaîne de caractère.
La nouvelle chaîne de caractères ne provient pas nécessairement d'un jeu de caractères multi-octets.

Le flag $bRetBinary est conçu pour les utilisateurs de pages de codes multi-octets et force la fonction à retourner une chaîne binaire terminée par 0 ou une structure la contenant en fonction de $bRetNoStruct.

Le flag $bRetNoStruct détermine si la fonction doit retourner uniquement la string/binary ou la structure entière.

En relation

_WinAPI_MultiByteToWideChar

Voir aussi

Consultez WideCharToMultiByte dans la librairie MSDN.

Exemple

#include <WinAPIConv.au3>
Global Const $CP_SHIFT_JIS = 932

Local $sTest
Local $sText = "データのダウンロードに失敗しました。"

$sTest = _WinAPI_WideCharToMultiByte($sText, $CP_SHIFT_JIS, True, False)
MsgBox($MB_SYSTEMMODAL, "Title Sring",$sText & @CRLF & VarGetType($sTest) & " " & StringLen($sTest) & ": '" & $sTest & "'")

$sTest = _WinAPI_WideCharToMultiByte($sText, $CP_SHIFT_JIS, True, True)
MsgBox($MB_SYSTEMMODAL, "Title Binary",$sText & @CRLF & VarGetType($sTest) & " " & StringLen($sTest) & ": '" & $sTest & "'")