Encoding.GetPreamble, méthode (System.Text)

Bibliothèque de classes .NET Framework 
Encoding.GetPreamble, méthode 

Lors d'une substitution dans une classe dérivée, retourne une séquence d'octets qui spécifie le codage utilisé.

Espace de noms : System.Text
Assembly : mscorlib (dans mscorlib.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Public Overridable Function GetPreamble As Byte()


Visual Basic (Utilisation)
Dim instance As Encoding
Dim returnValue As Byte()

returnValue = instance.GetPreamble


C#
public virtual byte[] GetPreamble ()


C++
public:
virtual array<unsigned char>^ GetPreamble ()


J#
public byte[] GetPreamble ()


JScript
public function GetPreamble () : byte[]

Valeur de retour

Tableau d'octets qui contient une séquence d'octets spécifiant le codage utilisé. - ou - Tableau d'octets de zéro de longueur, si un préambule n'est pas requis.
NotesNotes

Les encodeurs UTF-16 et UTF-32 peuvent utiliser l'ordre d'octet avec primauté des octets de poids fort (Big-Endian) ou l'ordre d'octet avec primauté des octets de poids faible (Little-Endian). Par exemple, la majuscule latine A (U+0041) est sérialisée comme suit (au format hexadécimal) :

  • UTF-16 avec primauté des octets de poids fort : 00 41

  • UTF-16 avec primauté des octets de poids faible : 41 00

  • UTF-32 avec primauté des octets de poids fort : 00 00 00 41

  • UTF-32 avec primauté des octets de poids faible : 41 00 00 00

Le cas échéant, Encoding fournit un préambule, c'est-à-dire un tableau d'octets que vous pouvez ajouter en tant que préfixe à la séquence d'octets résultant du processus de codage. Si le préambule contient une marque d'ordre d'octet (point de code U+FEFF en Unicode), il aide le décodeur à déterminer l'ordre d'octet et le format UTF. La marque d'ordre d'octet Unicode est sérialisée comme suit (format hexadécimal) :

  • UTF-8 : EF BB BF

  • UTF-16 avec primauté des octets de poids fort : FE FF

  • UTF-16 avec primauté des octets de poids faible : FF FE

  • UTF-32 avec primauté des octets de poids fort : 00 00 FE FF

  • UTF-32 avec primauté des octets de poids faible : FF FE 00 00

Il est généralement plus efficace d'utiliser l'ordre d'octet natif pour stocker des caractères Unicode. Par exemple, il est préférable d'utiliser l'ordre d'octet avec primauté des octets de poids faible (little-endian) sur les plates-formes little-endian, comme les ordinateurs Intel.

Pour plus d'informations sur l'ordre d'octet et les marques d'ordre d'octet, consultez la norme Unicode à l'adresse www.unicode.org.

AttentionAttention

Pour garantir que les octets codés sont correctement décodés, faites précéder les octets codés d'un préambule. Toutefois, la plupart des codages ne fournissent pas de préambule. Pour garantir que les octets codés sont décodés correctement, utilisez un codage Unicode (à savoir, UTF8Encoding, UnicodeEncoding ou UTF32Encoding) avec un préambule.

ExempleExemple

L'exemple de code suivant détermine l'ordre d'octet du codage selon le préambule.



Visual Basic
Imports System
Imports System.Text

Namespace GetPreambleExample
   Class GetPreambleExampleClass
      Shared Sub Main()
         Dim [unicode] As Encoding = Encoding.Unicode

         ' Get the preamble for the Unicode encoder. 
         ' In this case the preamble contains the byte order mark (BOM).
         Dim preamble As Byte() = [unicode].GetPreamble()

         ' Make sure a preamble was returned 
         ' and is large enough to contain a BOM.
         If preamble.Length >= 2 Then
            If preamble(0) = &HFE And preamble(1) = &HFF Then
               Console.WriteLine("The Unicode encoder is encoding in big-endian order.")
            Else
               If preamble(0) = &HFF And preamble(1) = &HFE Then
                  Console.WriteLine("The Unicode encoder is encoding in little-endian order.")
               End If
            End If
         End If
      End Sub
   End Class
End Namespace


C#
using System;
using System.Text;

namespace GetPreambleExample
{
   class GetPreambleExampleClass
   {
      static void Main()
      {
         Encoding unicode = Encoding.Unicode;

         // Get the preamble for the Unicode encoder. 
         // In this case the preamble contains the byte order mark (BOM).
         byte[] preamble = unicode.GetPreamble();

         // Make sure a preamble was returned 
         // and is large enough to containa BOM.
         if(preamble.Length >= 2)
         {
            if(preamble[0] == 0xFE && preamble[1] == 0xFF)
            {
               Console.WriteLine("The Unicode encoder is encoding in big-endian order.");
            }
            else if(preamble[0] == 0xFF && preamble[1] == 0xFE)
            {
               Console.WriteLine("The Unicode encoder is encoding in little-endian order.");
            }
         }
      }
   }
}


C++
using namespace System;
using namespace System::Text;
int main()
{
   Encoding^ unicode = Encoding::Unicode;
   
   // Get the preamble for the Unicode encoder. 
   // In this case the preamblecontains the Byte order mark (BOM).
   array<Byte>^preamble = unicode->GetPreamble();
   
   // Make sure a preamble was returned 
   // and is large enough to containa BOM.
   if ( preamble->Length >= 2 )
   {
      
      // if (preamble->Item[0] == 0xFE && preamble->Item[1] == 0xFF) 
      if ( preamble[ 0 ] == 0xFE && preamble[ 1 ] == 0xFF )
      {
         Console::WriteLine( "The Unicode encoder is encoding in big-endian order." );
      }
      // else if (preamble->Item[0] == 0xFF && preamble->Item[1] == 0xFE) 
      else
      
      // else if (preamble->Item[0] == 0xFF && preamble->Item[1] == 0xFE) 
      if ( preamble[ 0 ] == 0xFF && preamble[ 1 ] == 0xFE )
      {
         Console::WriteLine( "The Unicode encoder is encoding in little-endian order." );
      }
   }
}



J#
package GetPreambleExample; 

import System.*;
import System.Text.*;

class GetPreambleExampleClass
{
    public static void main(String[] args)
    {
        Encoding unicode = Encoding.get_Unicode();

        // Get the preamble for the Unicode encoder. 
        // In this case the preamble contains the byte order mark (BOM).
        ubyte preamble[] = unicode.GetPreamble();

        // Make sure a preamble was returned 
        // and is large enough to containa BOM.
        if(preamble.length >= 2) {
            if(preamble[0] == 0xFE && preamble[1] == 0xFF) {
                Console.WriteLine("The Unicode encoder is "
                + "encoding in big-endian order.");
            }
            else {
                if(preamble[0] == 0xFF && preamble[1] == 0xFE) {
                    Console.WriteLine("The Unicode encoder is" 
                    + " encoding in little-endian order.");
                }
            }
        }
    } //main
} //GetPreambleExampleClass 
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.text.encoding.getpreamble.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-6195
Document créé le 30/10/06 02:33, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.text.encoding.getpreamble.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,36 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Je pense que beaucoup de gens sont bons dans bien plus de domaines que ce que le monde ne leur laisse l'opportunité d'exploiter.

Ethan Hawke
 
l'infobrol
Nous sommes le Vendredi 01 Juin 2012, 04:48, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)