Assembly : mscorlib (dans mscorlib.dll)
SyntaxePublic Overridable Function GetPreamble As Byte()
Dim instance As Encoding Dim returnValue As Byte() returnValue = instance.GetPreamble
public virtual byte[] GetPreamble ()
public: virtual array<unsigned char>^ GetPreamble ()
public byte[] GetPreamble ()
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.
NotesLes 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.
Attention |
|---|
| 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. |
ExempleL'exemple de code suivant détermine l'ordre d'octet du codage selon le préambule.
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
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."); } } } } }
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." ); } } }
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-formesWindows 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 version
Attention
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ