Functions > VarConv >


BinaryToString

Convertit une variable de type binaire en une chaîne de caractère.

BinaryToString ( expression [, flag = 1] )

Paramètres

expression Une expression binaire à convertir en chaîne.
flag [optionnel] Change la manière dont les données binaires sont converties:
    $SB_ANSI (1) = les données binaires sont encodées en ANSI (par défaut)
    $SB_UTF16LE (2) = les données binaires sont encodées en UTF16 Little Endian
    $SB_UTF16BE (3) = les données binaires sont encodées en UTF16 Big Endian
    $SB_UTF8 (4) = les données binaires sont encodées en UTF8

Les constantes sont définies dans StringConstants.au3.

Valeur de retour

Succès: Retourne la représentation chaîne de la variable binaire.
Échec: Retourne une chaîne vide et définit @error <> 0:
@error: 1 = La chaîne d'entrée a une longueur nulle.
2 = La chaîne d'entrée a un nombre impair d'octets, mais devait être un codage UTF16 (donc devait contenir un nombre pair d'octets pour être un codage UTF16 valide).

Remarque

Contrairement à String() qui retourne une représentation hexadécimale des données binaires, cette fonction suppose qu'une donnée binaire est une valeur chaîne et la convertira de manière appropriée.
Consultez "Support Unicode" pour une description détaillée.

En relation

Binary, IsBinary, String, StringToASCIIArray, StringToBinary

Exemple

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>

Example()

Func Example()
    ; Définit la chaîne qui sera converti plus tard.
    ; NOTE : Cette chaîne peut apparaître comme ?? dans le fichier d'aide et même dans certains éditeurs.
    ; Cet exemple est enregistré au format UTF-8 avec BOM. Il devrait s'afficher correctement dans les éditeurs
    ; qui prennent en charge la modification des pages de code basée sur les BOMs.
    Local Const $sString = "Hello - 你好"

    ; Les variables temporaires utilisées pour stocker les résultats de conversion. $dBinary contiendra
    ; la chaîne d'origine sous forme binaire et $sConverted contiendra le résultat
    ; après qu'il ait été converti  à nouveau au format original.
    Local $dBinary = Binary(""), $sConverted = ""

    ; Convertit la chaîne d'origine UTF-8 en une chaîne binaire compatible ANSI.
    $dBinary = StringToBinary($sString)

    ;Convertit la chaîne binaire compatible ANSI en une chaîne.
    $sConverted = BinaryToString($dBinary)

    ; Affiche les résultats. Notez que les deux derniers caractères s'affichent
    ; comme ?? car ils ne peuvent pas être représentés dans la norme ANSI.
    DisplayResults($sString, $dBinary, $sConverted, "ANSI")

    ;Convertit la chaîne d'origine UTF-8 en une chaîne binaire UTF16-LE.
    $dBinary = StringToBinary($sString, 2)

    ; Convertit la chaîne binaire UTF16-LE en une chaîne.
    $sConverted = BinaryToString($dBinary, 2)

    ; Affiche les résultats.
    DisplayResults($sString, $dBinary, $sConverted, "UTF16-LE")

    ;Convertit la chaîne d'origine UTF-8 en une chaîne binaire UTF16-BE.
    $dBinary = StringToBinary($sString, 3)

    ;Convertit la chaîne binaire  UTF16-BE en une chaîne.
    $sConverted = BinaryToString($dBinary, 3)

    ; Affiche les résultats.
    DisplayResults($sString, $dBinary, $sConverted, "UTF16-BE")

    ;Convertit la chaîne d'origine UTF-8 en chaîne binaire UTF-8.
    $dBinary = StringToBinary($sString, 4)

    ;Convertit la chaîne binaire UTF8 en une chaîne.
    $sConverted = BinaryToString($dBinary, 4)

    ; Affiche les résultats.
    DisplayResults($sString, $dBinary, $sConverted, "UTF8")
EndFunc   ;==>Example

;Fonction d'aide qui formate le message pour l'affichage. Elle prend les paramètres suivants :
;$sOriginal - La chaîne d'origine avant la conversion.
;$dBinary - La chaîne d'origine après qu'elle ait été converti en binaire.
;$sConverted- La chaîne après qu'elle ait été converti en binaire, puis de nouveau en une chaîne.
;$sConversionType - Un nom convivial humain pour le type de codage utilisé pour la conversion.
Func DisplayResults($sOriginal, $dBinary, $sConverted, $sConversionType)
    MsgBox($MB_SYSTEMMODAL, "", "Original:" & @CRLF & $sOriginal & @CRLF & @CRLF & "Binary:" & @CRLF & $dBinary & @CRLF & @CRLF & $sConversionType & ":" & @CRLF & $sConverted)
EndFunc   ;==>DisplayResults