Encoding, classe (System.Text)

Bibliothèque de classes .NET Framework 
Encoding, classe 

Représente un codage de caractères.

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

SyntaxeSyntaxe


Visual Basic (Déclaration)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class Encoding
    Implements ICloneable


Visual Basic (Utilisation)
Dim instance As Encoding


C#
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class Encoding : ICloneable


C++
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class Encoding abstract : ICloneable


J#
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class Encoding implements ICloneable


JScript
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class Encoding implements ICloneable
NotesNotes

Le codage est le processus de transformation d'un jeu de caractères Unicode en une séquence d'octets. Le décodage est le processus inverse ; il consiste à transformer une séquence d'octets codés en un jeu de caractères Unicode.

La norme Unicode assigne un point de code (nombre) à chaque caractère de chaque script pris en charge. Le format UTF (Unicode Transformation Format) permet de coder ce point de code. La norme Unicode version 3.2 utilise les formats UTF suivants :

  • UTF-8 qui représente chaque point de code sous la forme d'une séquence d'un à quatre octets.

  • UTF-16 qui représente chaque point de code sous la forme d'une séquence d'un à deux entiers 16 bits.

  • UTF-32 qui représente chaque point de code sous la forme d'un entier 32 bits.

Le .NET Framework fournit les implémentations suivantes de la classe Encoding pour prendre en charge les codages Unicode et autres :

  • ASCIIEncoding code les caractères Unicode en caractères ASCII simples de 7 bits. Ce codage ne prend en charge que les valeurs de caractères comprises entre U+0000 et U+007F. Page de codes 20127. Également disponible à travers la propriété ASCII.

  • UTF7Encoding code les caractères Unicode à l'aide du codage UTF-7. Ce codage prend en charge toutes les valeurs de caractères Unicode. Page de codes 65000. Également disponible à travers la propriété UTF7.

  • UTF8Encoding code les caractères Unicode à l'aide du codage UTF-8. Ce codage prend en charge toutes les valeurs de caractères Unicode. Page de codes 65001. Également disponible à travers la propriété UTF8.

  • UnicodeEncoding code les caractères Unicode à l'aide du codage UTF-16. Les deux ordres de primauté des octets sont pris en charge : primauté des octets de poids faible (Little endian, page de codes 1200) et primauté des octets de poids fort (Big endian, page de codes 1201). Également disponible via la propriété Unicode et la propriété BigEndianUnicode.

  • UTF32Encoding code les caractères Unicode à l'aide du codage UTF-32. Les deux ordres de primauté des octets sont pris en charge : primauté des octets de poids faible (Little endian, page de codes 65005) et primauté des octets de poids fort (Big endian, page de codes 65006). Également disponible via la propriété UTF32.

Utilisez la méthode GetEncoding pour obtenir d'autres codages. Utilisez la méthode GetEncodings pour obtenir la liste de tous les codages.

Le tableau suivant répertorie les codages et leurs pages de codes associées. Un astérisque dans la dernière colonne indique que la page de codes est prise en charge en mode natif par le .NET Framework, indépendamment de la plate-forme sous-jacente.

 

Page de codes

Nom

Nom complet

37

IBM037

IBM EBCDIC (EU-Canada)

437

IBM437

OEM États-Unis

500

IBM500

IBM EBCDIC (International)

708

ASMO-708

Arabe (ASMO 708)

720

DOS-720

Arabe (DOS)

737

ibm737

Grec (DOS)

775

ibm775

Baltique (DOS)

850

ibm850

Europe de l'Ouest (DOS)

852

ibm852

Europe centrale (DOS)

855

IBM855

OEM Cyrillique

857

ibm857

Turc (DOS)

858

IBM00858

OEM Multilingue Latin I

860

IBM860

Portugais (DOS)

861

ibm861

Islandais (DOS)

862

DOS-862

Hébreu (DOS)

863

IBM863

Français canadien (DOS)

864

IBM864

Arabe (864)

865

IBM865

Nordique (DOS)

866

cp866

Cyrillique (DOS)

869

ibm869

Grec moderne (DOS)

870

IBM870

IBM EBCDIC (Multilingue Latin-2)

874

windows-874

Thaï (Windows)

875

cp875

IBM EBCDIC (Grec moderne)

932

shift_jis

Japonais (Shift-JIS)

936

gb2312

Chinois simplifié (GB2312)

*

949

ks_c_5601-1987

Coréen

950

big5

Chinois traditionnel (Big5)

1026

IBM1026

IBM EBCDIC (Turc Latin-5)

1047

IBM01047

IBM Latin-1

1140

IBM01140

IBM EBCDIC (EU-Canada-Euro)

1141

IBM01141

IBM EBCDIC (Allemagne-Euro)

1142

IBM01142

IBM EBCDIC (Danemark-Norvège-Euro)

1143

IBM01143

IBM EBCDIC (Finlande-Suède-Euro)

1144

IBM01144

IBM EBCDIC (Italie-Euro)

1145

IBM01145

IBM EBCDIC (Espagne-Euro)

1146

IBM01146

IBM EBCDIC (RU-Euro)

1147

IBM01147

IBM EBCDIC (France-Euro)

1148

IBM01148

IBM EBCDIC (International-Euro)

1149

IBM01149

IBM EBCDIC (Islandais-Euro)

1200

utf-16

Unicode

*

1201

unicodeFFFE

Unicode (Big-Endian)

*

1250

windows-1250

Europe centrale (Windows)

1251

windows-1251

Cyrillique (Windows)

1252

Windows -1252

Europe de l'Ouest (Windows)

*

1253

windows-1253

Grec (Windows)

1254

windows-1254

Turc (Windows)

1255

windows-1255

Hébreu (Windows)

1256

windows-1256

Arabe (Windows)

1257

windows-1257

Baltique (Windows)

1258

windows-1258

Vietnamien (Windows)

1361

Johab

Coréen (Johab)

10000

macintosh

Europe de l'Ouest (Mac)

10001

x-mac-japanese

Japonais (Mac)

10002

x-mac-chinesetrad

Chinois traditionnel (Mac)

10003

x-mac-korean

Coréen (Mac)

*

10004

x-mac-arabic

Arabe (Mac)

10005

x-mac-hebrew

Hébreu (Mac)

10006

x-mac-greek

Grec (Mac)

10007

x-mac-cyrillic

Cyrillique (Mac)

10008

x-mac-chinesesimp

Chinois simplifié (Mac)

*

10010

x-mac-romanian

Roumain (Mac)

10017

x-mac-ukrainian

Ukrainien (Mac)

10021

x-mac-thai

Thaï (Mac)

10029

x-mac-ce

Europe centrale (Mac)

10079

x-mac-icelandic

Islandais (Mac)

10081

x-mac-turkish

Turc (Mac)

10082

x-mac-croatian

Croate (Mac)

20000

x-Chinese-CNS

Chinois traditionnel (CNS)

20001

x-cp20001

TCA Taïwan

20002

x-Chinese-Eten

Chinois traditionnel (Eten)

20003

x-cp20003

IBM5550 Taïwan

20004

x-cp20004

TeleText Taïwan

20005

x-cp20005

Wang Taïwan

20105

x-IA5

Europe de l'Ouest (IA5)

20106

x-IA5-German

Allemand (IA5)

20107

x-IA5-Swedish

Suédois (IA5)

20108

x-IA5-Norwegian

Norvégien (IA5)

20127

us-ascii

US-ASCII

*

20261

x-cp20261

T.61

20269

x-cp20269

ISO -6937

20273

IBM273

IBM EBCDIC (Allemagne)

20277

IBM277

IBM EBCDIC (Danemark-Norvège)

20278

IBM278

IBM EBCDIC (Finlande-Suède)

20280

IBM280

IBM EBCDIC (Italie)

20284

IBM284

IBM EBCDIC (Espagne)

20285

IBM285

IBM EBCDIC (RU)

20290

IBM290

IBM EBCDIC (Japonais katakana)

20297

IBM297

IBM EBCDIC (France)

20420

IBM420

IBM EBCDIC (Arabe)

20423

IBM423

IBM EBCDIC (Grec)

20424

IBM424

IBM EBCDIC (Hébreu)

20833

x-EBCDIC-KoreanExtended

IBM EBCDIC (Coréen étendu)

20838

IBM-Thaï

IBM EBCDIC (Thaï)

20866

koi8-r

Cyrillique (KOI8-R)

20871

IBM871

IBM EBCDIC (islandais)

20880

IBM880

IBM EBCDIC (Russe cyrillique)

20905

IBM905

IBM EBCDIC (Turc)

20924

IBM00924

IBM Latin-1

20932

EUC-JP

Japonais (JIS 0208-1990 et 0212-1990)

20936

x-cp20936

Chinois simplifié (GB2312-80)

*

20949

x-cp20949

Coréen Wansung

*

21025

cp1025

IBM EBCDIC (Serbe cyrillique-bulgare)

21866

koi8-u

Cyrillique (KOI8-U)

28591

iso-8859-1

Europe de l'Ouest (ISO)

*

28592

iso-8859-2

Europe centrale (ISO)

28593

iso-8859-3

Latin 3 (ISO)

28594

iso-8859-4

Baltique (ISO)

28595

iso-8859-5

Cyrillique (ISO)

28596

iso-8859-6

Arabe (ISO)

28597

iso-8859-7

Grec (ISO)

28598

iso-8859-8

Hébreu (ISO-Visual)

*

28599

iso-8859-9

Turc (ISO)

28603

iso-8859-13

Estonien (ISO)

28605

iso-8859-15

Latin 9 (ISO)

29001

x-Europa

Europe

38598

iso-8859-8-i

Hébreu (ISO-Logical)

*

50220

iso-2022-jp

Japonais (JIS)

*

50221

csISO2022JP

Japonais (JIS-Kana 1 octet)

*

50222

iso-2022-jp

Japonais (JIS-Kana 1 octet- SO/SI)

*

50225

iso-2022-kr

Coréen (ISO)

*

50227

x-cp50227

Chinois simplifié (ISO-2022)

*

51932

euc-jp

Japonais (EUC)

*

51936

EUC-CN

Chinois simplifié (EUC)

*

51949

euc-kr

Coréen (EUC)

*

52936

hz-gb-2312

Chinois simplifié (HZ)

*

54936

GB18030

Chinois simplifié (GB18030)

*

57002

x-iscii-de

ISCII Devanagari

*

57003

x-iscii-be

ISCII Bengali

*

57004

x-iscii-ta

ISCII Tamoul

*

57005

x-iscii-te

ISCII Télougou

*

57006

x-iscii-as

ISCII Assamais

*

57007

x-iscii-or

ISCII Oriya

*

57008

x-iscii-ka

ISCII Kannada

*

57009

x-iscii-ma

ISCII Malayalam

*

57010

x-iscii-gu

ISCII Gujarati

*

57011

x-iscii-pa

ISCII Pendjabi

*

65000

utf-7

Unicode (UTF-7)

*

65001

utf-8

Unicode (UTF-8)

*

65005

utf-32

Unicode (UTF-32)

*

65006

utf-32BE

Unicode (UTF-32 Big-Endian)

*

La méthode GetByteCount détermine le nombre d'octets entraînant le codage d'un jeu de caractères Unicode, et la méthode GetBytes exécute ce codage.

De même, la méthode GetCharCount détermine le nombre de caractères entraînant le décodage d'une séquence d'octets, et la méthode GetChars procède au décodage effectif.

Si les données à convertir ne sont disponibles que sous la forme de blocs séquentiels (comme les données lues à partir d'un flux) ou si la quantité de données est si grande qu'elles doivent être divisées en blocs plus petits, utilisez Decoder ou Encoder fourni respectivement par la méthode GetDecoder ou GetEncoder d'une classe dérivée.

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.

La méthode GetPreamble retourne un tableau d'octets qui peut contenir la marque d'ordre d'octet. Si ce tableau d'octets est ajouté comme préambule à un flux de données codé, il aide le décodeur à identifier le format de codage utilisé.

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.

ExempleExemple

L'exemple de code suivant convertit une chaîne depuis un codage vers un autre.



Visual Basic
Imports System
Imports System.Text
Imports Microsoft.VisualBasic

Namespace Convert_Example
    Class MyConvertExampleClass
        Shared Sub Main()
            Dim unicodeString As String = "This string contains the unicode character Pi(" & ChrW(&H03A0) & ")"

            ' Create two different encodings.
            Dim ascii As Encoding = Encoding.ASCII
            Dim [unicode] As Encoding = Encoding.Unicode

            ' Convert the string into a byte[].
            Dim unicodeBytes As Byte() = [unicode].GetBytes(unicodeString)

            ' Perform the conversion from one encoding to the other.
            Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii, unicodeBytes)

            ' Convert the new byte[] into a char[] and then into a string.
            ' This is a slightly different approach to converting to illustrate
            ' the use of GetCharCount/GetChars.
            Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)) As Char
            ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
            Dim asciiString As New String(asciiChars)

            ' Display the strings created before and after the conversion.
            Console.WriteLine("Original string: {0}", unicodeString)
            Console.WriteLine("Ascii converted string: {0}", asciiString)
        End Sub
    End Class
End Namespace


C#
using System;
using System.Text;

namespace ConvertExample
{
   class ConvertExampleClass
   {
      static void Main()
      {
         string unicodeString = "This string contains the unicode character Pi(\u03a0)";

         // Create two different encodings.
         Encoding ascii = Encoding.ASCII;
         Encoding unicode = Encoding.Unicode;

         // Convert the string into a byte[].
         byte[] unicodeBytes = unicode.GetBytes(unicodeString);

         // Perform the conversion from one encoding to the other.
         byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
            
         // Convert the new byte[] into a char[] and then into a string.
         // This is a slightly different approach to converting to illustrate
         // the use of GetCharCount/GetChars.
         char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
         ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
         string asciiString = new string(asciiChars);

         // Display the strings created before and after the conversion.
         Console.WriteLine("Original string: {0}", unicodeString);
         Console.WriteLine("Ascii converted string: {0}", asciiString);
      }
   }
}


C++
using namespace System;
using namespace System::Text;
int main()
{
   String^ unicodeString = "This string contains the unicode character Pi(\u03a0)";
   
   // Create two different encodings.
   Encoding^ ascii = Encoding::ASCII;
   Encoding^ unicode = Encoding::Unicode;
   
   // Convert the string into a Byte->Item[].
   array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
   
   // Perform the conversion from one encoding to the other.
   array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
   
   // Convert the new Byte into[] a char and[] then into a string.
   // This is a slightly different approach to converting to illustrate
   // the use of GetCharCount/GetChars.
   array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
   ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
   String^ asciiString = gcnew String( asciiChars );
   
   // Display the strings created before and after the conversion.
   Console::WriteLine( "Original String*: {0}", unicodeString );
   Console::WriteLine( "Ascii converted String*: {0}", asciiString );
}



J#
package ConvertExample; 

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

class ConvertExampleClass
{
    public static void main(String[] args)
    {
        String unicodeString = 
                "This string contains the unicode character Pi(\u03a0)";

        // Create two different encodings.
        Encoding ascii = Encoding.get_ASCII();
        Encoding unicode = Encoding.get_Unicode();

        // Convert the string into a byte[].
        ubyte unicodeBytes[] = unicode.GetBytes(unicodeString);

        // Perform the conversion from one encoding to the other.
        ubyte asciiBytes[] = Encoding.Convert(unicode, ascii, unicodeBytes);

        // Convert the new byte[] into a char[] and then into a string.
        // This is a slightly different approach to converting to illustrate
        // the use of GetCharCount/GetChars.
        char asciiChars[] = new 
                char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.length)];
        ascii.GetChars(asciiBytes, 0, asciiBytes.length, asciiChars, 0);
        String asciiString = new String(asciiChars);

        // Display the strings created before and after the conversion.
        Console.WriteLine("Original string: {0}", unicodeString);
        Console.WriteLine("Ascii converted string: {0}", asciiString);
    } //main
} //ConvertExampleClass 
Hiérarchie d'héritageHiérarchie d'héritage
System.Object
  System.Text.Encoding
     Classes dérivées
Sécurité des threadsSécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, 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.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

7 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-4697
Document créé le 30/10/06 00:32, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.text.encoding.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,32 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
L'esprit qui invente est toujours mécontent de ses progrès, parce qu'il voit au-delà.

Jean le Rond d’Alembert
 
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)