UTF8 Propriété

Propriété Encoding.UTF8

 

Obtient un encodage pour le format UTF-8.

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

public static Encoding UTF8 { get; }

Valeur de propriété

Type: System.Text.Encoding

Encodage pour le format UTF-8.

Cette propriété retourne un UTF8Encoding objet qui encode les caractères Unicode (UTF-16-codée) en une séquence d'un à quatre octets par caractère, et cela décode un tableau d'octets encodée en UTF-8 pour les caractères Unicode (UTF-16-codée).Pour plus d'informations sur les codages de caractères pris en charge par le .NET Framework et une discussion de codage Unicode à utiliser, consultez Encodage de caractères dans le .NET Framework.

Le UTF8Encoding objet retourné par cette propriété ne peut pas avoir le comportement approprié pour votre application.

  • Elle retourne un UTF8Encoding objet qui fournit une marque d'ordre octet Unicode (BOM).Pour instancier un codage UTF8 qui ne fournit pas une nomenclature, appelez toute surcharge de la UTF8Encoding constructeur.

  • Elle retourne un UTF8Encoding objet qui utilise le remplacement de secours pour remplacer chaque chaîne qu'il ne peut pas encoder et chaque octet qu'il ne peut pas décoder par un point d'interrogation («? ») caractères.Au lieu de cela, vous pouvez appeler le UTF8Encoding.UTF8Encoding(Boolean, Boolean) constructeur pour instancier un UTF8Encoding objet dont exception de secours est un EncoderFallbackException ou DecoderFallbackException, comme l'illustre l'exemple suivant.

    using System;
    using System.Text;
    
    public class Example
    {
       public static void Main()
       {
          Encoding enc = new UTF8Encoding(true, true);
          string value = "\u00C4 \uD802\u0033 \u00AE"; 
    
          try {
             byte[] bytes= enc.GetBytes(value);
             foreach (var byt in bytes)
                Console.Write("{0:X2} ", byt);
             Console.WriteLine();
    
             string value2 = enc.GetString(bytes);
             Console.WriteLine(value2);
          }
          catch (EncoderFallbackException e) {
             Console.WriteLine("Unable to encode {0} at index {1}", 
                               e.IsUnknownSurrogate() ? 
                                  String.Format("U+{0:X4} U+{1:X4}", 
                                                Convert.ToUInt16(e.CharUnknownHigh),
                                                Convert.ToUInt16(e.CharUnknownLow)) :
                                  String.Format("U+{0:X4}", 
                                                Convert.ToUInt16(e.CharUnknown)),
                               e.Index);
          }                     
       }
    }
    // The example displays the following output:
    //        Unable to encode U+D802 at index 2
    

L'exemple suivant définit un tableau qui se compose des caractères suivants :

  • LETTRE MINUSCULE LATINE Z (U + 007 A)

  • LATIN LETTRE MINUSCULE (U + 0061)

  • DIACRITIQUE BRÈVE (U + 0306)

  • LETTRE MINUSCULE LATINE AE AVEC UN ACCENT AIGU (U + 01FD)

  • LETTRE MINUSCULE GRECQUE BÊTA (U + 03B2)

  • Une paire de substitution (U + D800 U + DD54) qui constitue le grec ACROPHONIC ATTIC un milliers STATERS (U + 10154).

Il affiche les unités de code UTF-16 de chaque caractère et détermine le nombre d'octets requis par un encodeur UTF-8 pour coder le tableau de caractères.Il encode les caractères, puis affiche les octets obtenus encodée en UTF-8.

using System;
using System.Text;

public class Example
{
   public static void Main()  
   {
      // Create a character array.
      string gkNumber = Char.ConvertFromUtf32(0x10154);
      char[] chars = new char[] { 'z', 'a', '\u0306', '\u01FD', '\u03B2', 
                                  gkNumber[0], gkNumber[1] };

      // Get UTF-8 and UTF-16 encoders.
      Encoding utf8 = Encoding.UTF8;
      Encoding utf16 = Encoding.Unicode;

      // Display the original characters' code units.
      Console.WriteLine("Original UTF-16 code units:");
      byte[] utf16Bytes = utf16.GetBytes(chars);
      foreach (var utf16Byte in utf16Bytes)
         Console.Write("{0:X2} ", utf16Byte);
      Console.WriteLine();

      // Display the number of bytes required to encode the array.
      int reqBytes  = utf8.GetByteCount(chars);
      Console.WriteLine("\nExact number of bytes required: {0}", 
                    reqBytes);

      // Display the maximum byte count.
      int maxBytes = utf8.GetMaxByteCount(chars.Length);
      Console.WriteLine("Maximum number of bytes required: {0}\n", 
                        maxBytes);

      // Encode the array of chars.
      byte[] utf8Bytes = utf8.GetBytes(chars);

      // Display all the UTF-8-encoded bytes.
      Console.WriteLine("UTF-8-encoded code units:");
      foreach (var utf8Byte in utf8Bytes)
         Console.Write("{0:X2} ", utf8Byte);
      Console.WriteLine();
   }
}
// The example displays the following output:
//       Original UTF-16 code units:
//       7A 00 61 00 06 03 FD 01 B2 03 00 D8 54 DD
//       
//       Exact number of bytes required: 12
//       Maximum number of bytes required: 24
//       
//       UTF-8-encoded code units:
//       7A 61 CC 86 C7 BD CE B2 F0 90 85 94

Universal Windows Platform
Disponible depuis 4.5
.NET Framework
Disponible depuis 1.1
Portable Class Library
Pris en charge dans : portable .NET platforms
Silverlight
Disponible depuis 2.0
Windows Phone Silverlight
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher:
© 2016 Microsoft