Encoding Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents a character encoding.
public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
- Inheritance
-
Encoding
- Derived
- Attributes
- Implements
Examples
The following example converts a string from one encoding to another.
Note
The byte[]
array is the only type in this example that contains the encoded data. The .NET Char
and String
types are themselves Unicode, so the GetChars call decodes the data back to Unicode.
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 array.
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.
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 );
}
// The example displays the following output:
// Original string: This string contains the unicode character Pi (Π)
// Ascii converted string: This string contains the unicode character Pi (?)
using System;
using System.Text;
class Example
{
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 array.
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.
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);
}
}
// The example displays the following output:
// Original string: This string contains the unicode character Pi (Π)
// Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text
Class Example
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 array.
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 array into a char array and then into a string.
Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) 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
' The example displays the following output:
' Original string: This string contains the unicode character Pi (Π)
' Ascii converted string: This string contains the unicode character Pi (?)
Remarks
Encoding is the process of transforming a set of Unicode characters into a sequence of bytes. In contrast, decoding is the process of transforming a sequence of encoded bytes into a set of Unicode characters. For information about the Unicode Transformation Formats (UTFs) and other encodings supported by Encoding, see Character Encoding in .NET.
Note that Encoding is intended to operate on Unicode characters instead of arbitrary binary data, such as byte arrays. If you must encode arbitrary binary data into text, you should use a protocol such as uuencode, which is implemented by methods such as Convert.ToBase64CharArray.
.NET provides the following implementations of the Encoding class to support current Unicode encodings and other encodings:
ASCIIEncoding encodes Unicode characters as single 7-bit ASCII characters. This encoding only supports character values between U+0000 and U+007F. Code page 20127. Also available through the ASCII property.
UTF7Encoding encodes Unicode characters using the UTF-7 encoding. This encoding supports all Unicode character values. Code page 65000. Also available through the UTF7 property.
UTF8Encoding encodes Unicode characters using the UTF-8 encoding. This encoding supports all Unicode character values. Code page 65001. Also available through the UTF8 property.
UnicodeEncoding encodes Unicode characters using the UTF-16 encoding. Both little endian and big endian byte orders are supported. Also available through the Unicode property and the BigEndianUnicode property.
UTF32Encoding encodes Unicode characters using the UTF-32 encoding. Both little endian (code page 12000) and big endian (code page 12001) byte orders are supported. Also available through the UTF32 property.
The Encoding class is primarily intended to convert between different encodings and Unicode. Often one of the derived Unicode classes is the correct choice for your app.
Use the GetEncoding method to obtain other encodings, and call the GetEncodings method to get a list of all encodings.
List of encodings
The following table lists the encodings supported by .NET. It lists each encoding's code page number and the values of the encoding's EncodingInfo.Name and EncodingInfo.DisplayName properties. A check mark in the .NET Framework support, .NET Core support, or .NET 5 and later support column indicates that the code page is natively supported by that .NET implementation, regardless of the underlying platform. For .NET Framework, the availability of other encodings listed in the table depends on the operating system. For .NET Core and .NET 5 and later versions, other encodings are available by using the System.Text.CodePagesEncodingProvider class or by deriving from the System.Text.EncodingProvider class.
Note
Code pages whose EncodingInfo.Name property corresponds to an international standard do not necessarily comply in full with that standard.
Code page | Name | Display name | .NET Framework support | .NET Core support | .NET 5 and later support | |
---|---|---|---|---|---|---|
37 | IBM037 | IBM EBCDIC (US-Canada) | ||||
437 | IBM437 | OEM United States | ||||
500 | IBM500 | IBM EBCDIC (International) | ||||
708 | ASMO-708 | Arabic (ASMO 708) | ||||
720 | DOS-720 | Arabic (DOS) | ||||
737 | ibm737 | Greek (DOS) | ||||
775 | ibm775 | Baltic (DOS) | ||||
850 | ibm850 | Western European (DOS) | ||||
852 | ibm852 | Central European (DOS) | ||||
855 | IBM855 | OEM Cyrillic | ||||
857 | ibm857 | Turkish (DOS) | ||||
858 | IBM00858 | OEM Multilingual Latin I | ||||
860 | IBM860 | Portuguese (DOS) | ||||
861 | ibm861 | Icelandic (DOS) | ||||
862 | DOS-862 | Hebrew (DOS) | ||||
863 | IBM863 | French Canadian (DOS) | ||||
864 | IBM864 | Arabic (864) | ||||
865 | IBM865 | Nordic (DOS) | ||||
866 | cp866 | Cyrillic (DOS) | ||||
869 | ibm869 | Greek, Modern (DOS) | ||||
870 | IBM870 | IBM EBCDIC (Multilingual Latin-2) | ||||
874 | windows-874 | Thai (Windows) | ||||
875 | cp875 | IBM EBCDIC (Greek Modern) | ||||
932 | shift_jis | Japanese (Shift-JIS) | ||||
936 | gb2312 | Chinese Simplified (GB2312) | ✓ | |||
949 | ks_c_5601-1987 | Korean | ||||
950 | big5 | Chinese Traditional (Big5) | ||||
1026 | IBM1026 | IBM EBCDIC (Turkish Latin-5) | ||||
1047 | IBM01047 | IBM Latin-1 | ||||
1140 | IBM01140 | IBM EBCDIC (US-Canada-Euro) | ||||
1141 | IBM01141 | IBM EBCDIC (Germany-Euro) | ||||
1142 | IBM01142 | IBM EBCDIC (Denmark-Norway-Euro) | ||||
1143 | IBM01143 | IBM EBCDIC (Finland-Sweden-Euro) | ||||
1144 | IBM01144 | IBM EBCDIC (Italy-Euro) | ||||
1145 | IBM01145 | IBM EBCDIC (Spain-Euro) | ||||
1146 | IBM01146 | IBM EBCDIC (UK-Euro) | ||||
1147 | IBM01147 | IBM EBCDIC (France-Euro) | ||||
1148 | IBM01148 | IBM EBCDIC (International-Euro) | ||||
1149 | IBM01149 | IBM EBCDIC (Icelandic-Euro) | ||||
1200 | utf-16 | Unicode | ✓ | ✓ | ✓ | |
1201 | unicodeFFFE | Unicode (Big endian) | ✓ | ✓ | ✓ | |
1250 | windows-1250 | Central European (Windows) | ||||
1251 | windows-1251 | Cyrillic (Windows) | ||||
1252 | Windows-1252 | Western European (Windows) | ✓ | |||
1253 | windows-1253 | Greek (Windows) | ||||
1254 | windows-1254 | Turkish (Windows) | ||||
1255 | windows-1255 | Hebrew (Windows) | ||||
1256 | windows-1256 | Arabic (Windows) | ||||
1257 | windows-1257 | Baltic (Windows) | ||||
1258 | windows-1258 | Vietnamese (Windows) | ||||
1361 | Johab | Korean (Johab) | ||||
10000 | macintosh | Western European (Mac) | ||||
10001 | x-mac-japanese | Japanese (Mac) | ||||
10002 | x-mac-chinesetrad | Chinese Traditional (Mac) | ||||
10003 | x-mac-korean | Korean (Mac) | ✓ | |||
10004 | x-mac-arabic | Arabic (Mac) | ||||
10005 | x-mac-hebrew | Hebrew (Mac) | ||||
10006 | x-mac-greek | Greek (Mac) | ||||
10007 | x-mac-cyrillic | Cyrillic (Mac) | ||||
10008 | x-mac-chinesesimp | Chinese Simplified (Mac) | ✓ | |||
10010 | x-mac-romanian | Romanian (Mac) | ||||
10017 | x-mac-ukrainian | Ukrainian (Mac) | ||||
10021 | x-mac-thai | Thai (Mac) | ||||
10029 | x-mac-ce | Central European (Mac) | ||||
10079 | x-mac-icelandic | Icelandic (Mac) | ||||
10081 | x-mac-turkish | Turkish (Mac) | ||||
10082 | x-mac-croatian | Croatian (Mac) | ||||
12000 | utf-32 | Unicode (UTF-32) | ✓ | ✓ | ✓ | |
12001 | utf-32BE | Unicode (UTF-32 Big endian) | ✓ | ✓ | ✓ | |
20000 | x-Chinese-CNS | Chinese Traditional (CNS) | ||||
20001 | x-cp20001 | TCA Taiwan | ||||
20002 | x-Chinese-Eten | Chinese Traditional (Eten) | ||||
20003 | x-cp20003 | IBM5550 Taiwan | ||||
20004 | x-cp20004 | TeleText Taiwan | ||||
20005 | x-cp20005 | Wang Taiwan | ||||
20105 | x-IA5 | Western European (IA5) | ||||
20106 | x-IA5-German | German (IA5) | ||||
20107 | x-IA5-Swedish | Swedish (IA5) | ||||
20108 | x-IA5-Norwegian | Norwegian (IA5) | ||||
20127 | us-ascii | US-ASCII | ✓ | ✓ | ✓ | |
20261 | x-cp20261 | T.61 | ||||
20269 | x-cp20269 | ISO-6937 | ||||
20273 | IBM273 | IBM EBCDIC (Germany) | ||||
20277 | IBM277 | IBM EBCDIC (Denmark-Norway) | ||||
20278 | IBM278 | IBM EBCDIC (Finland-Sweden) | ||||
20280 | IBM280 | IBM EBCDIC (Italy) | ||||
20284 | IBM284 | IBM EBCDIC (Spain) | ||||
20285 | IBM285 | IBM EBCDIC (UK) | ||||
20290 | IBM290 | IBM EBCDIC (Japanese katakana) | ||||
20297 | IBM297 | IBM EBCDIC (France) | ||||
20420 | IBM420 | IBM EBCDIC (Arabic) | ||||
20423 | IBM423 | IBM EBCDIC (Greek) | ||||
20424 | IBM424 | IBM EBCDIC (Hebrew) | ||||
20833 | x-EBCDIC-KoreanExtended | IBM EBCDIC (Korean Extended) | ||||
20838 | IBM-Thai | IBM EBCDIC (Thai) | ||||
20866 | koi8-r | Cyrillic (KOI8-R) | ||||
20871 | IBM871 | IBM EBCDIC (Icelandic) | ||||
20880 | IBM880 | IBM EBCDIC (Cyrillic Russian) | ||||
20905 | IBM905 | IBM EBCDIC (Turkish) | ||||
20924 | IBM00924 | IBM Latin-1 | ||||
20932 | EUC-JP | Japanese (JIS 0208-1990 and 0212-1990) | ||||
20936 | x-cp20936 | Chinese Simplified (GB2312-80) | ✓ | |||
20949 | x-cp20949 | Korean Wansung | ✓ | |||
21025 | cp1025 | IBM EBCDIC (Cyrillic Serbian-Bulgarian) | ||||
21866 | koi8-u | Cyrillic (KOI8-U) | ||||
28591 | iso-8859-1 | Western European (ISO) | ✓ | ✓ | ✓ | |
28592 | iso-8859-2 | Central European (ISO) | ||||
28593 | iso-8859-3 | Latin 3 (ISO) | ||||
28594 | iso-8859-4 | Baltic (ISO) | ||||
28595 | iso-8859-5 | Cyrillic (ISO) | ||||
28596 | iso-8859-6 | Arabic (ISO) | ||||
28597 | iso-8859-7 | Greek (ISO) | ||||
28598 | iso-8859-8 | Hebrew (ISO-Visual) | ✓ | |||
28599 | iso-8859-9 | Turkish (ISO) | ||||
28603 | iso-8859-13 | Estonian (ISO) | ||||
28605 | iso-8859-15 | Latin 9 (ISO) | ||||
29001 | x-Europa | Europa | ||||
38598 | iso-8859-8-i | Hebrew (ISO-Logical) | ✓ | |||
50220 | iso-2022-jp | Japanese (JIS) | ✓ | |||
50221 | csISO2022JP | Japanese (JIS-Allow 1 byte Kana) | ✓ | |||
50222 | iso-2022-jp | Japanese (JIS-Allow 1 byte Kana - SO/SI) | ✓ | |||
50225 | iso-2022-kr | Korean (ISO) | ✓ | |||
50227 | x-cp50227 | Chinese Simplified (ISO-2022) | ✓ | |||
51932 | euc-jp | Japanese (EUC) | ✓ | |||
51936 | EUC-CN | Chinese Simplified (EUC) | ✓ | |||
51949 | euc-kr | Korean (EUC) | ✓ | |||
52936 | hz-gb-2312 | Chinese Simplified (HZ) | ✓ | |||
54936 | GB18030 | Chinese Simplified (GB18030) | ✓ | |||
57002 | x-iscii-de | ISCII Devanagari | ✓ | |||
57003 | x-iscii-be | ISCII Bengali | ✓ | |||
57004 | x-iscii-ta | ISCII Tamil | ✓ | |||
57005 | x-iscii-te | ISCII Telugu | ✓ | |||
57006 | x-iscii-as | ISCII Assamese | ✓ | |||
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 Punjabi | ✓ | |||
65000 | utf-7 | Unicode (UTF-7) | ✓ | ✓ | ||
65001 | utf-8 | Unicode (UTF-8) | ✓ | ✓ | ✓ |
The following example calls the GetEncoding(Int32) and GetEncoding(String) methods to get the Greek (Windows) code page encoding. It compares the Encoding objects returned by the method calls to show that they are equal, and then maps displays the Unicode code point and the corresponding code page value for each character in the Greek alphabet.
using System;
using System.Text;
public class Example
{
public static void Main()
{
Encoding enc = Encoding.GetEncoding(1253);
Encoding altEnc = Encoding.GetEncoding("windows-1253");
Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
altEnc.CodePage, enc.Equals(altEnc));
string greekAlphabet = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
"Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
"Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
"Φ φ Χ χ Ψ ψ Ω ω";
Console.OutputEncoding = Encoding.UTF8;
byte[] bytes = enc.GetBytes(greekAlphabet);
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
"Unicode Code Point", "Code Page 1253");
for (int ctr = 0; ctr < bytes.Length; ctr++) {
if (greekAlphabet[ctr].Equals(' '))
continue;
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet[ctr],
GetCodePoint(greekAlphabet[ctr]), bytes[ctr]);
}
}
private static string GetCodePoint(char ch)
{
string retVal = "u+";
byte[] bytes = Encoding.Unicode.GetBytes(ch.ToString());
for (int ctr = bytes.Length - 1; ctr >= 0; ctr--)
retVal += bytes[ctr].ToString("X2");
return retVal;
}
}
// The example displays the following output:
// Character Unicode Code Point Code Page 1253
// Α u+0391 C1
// α u+03B1 E1
// Β u+0392 C2
// β u+03B2 E2
// Γ u+0393 C3
// γ u+03B3 E3
// Δ u+0394 C4
// δ u+03B4 E4
// Ε u+0395 C5
// ε u+03B5 E5
// Ζ u+0396 C6
// ζ u+03B6 E6
// Η u+0397 C7
// η u+03B7 E7
// Θ u+0398 C8
// θ u+03B8 E8
// Ι u+0399 C9
// ι u+03B9 E9
// Κ u+039A CA
// κ u+03BA EA
// Λ u+039B CB
// λ u+03BB EB
// Μ u+039C CC
// μ u+03BC EC
// Ν u+039D CD
// ν u+03BD ED
// Ξ u+039E CE
// ξ u+03BE EE
// Ο u+039F CF
// ο u+03BF EF
// Π u+03A0 D0
// π u+03C0 F0
// Ρ u+03A1 D1
// ρ u+03C1 F1
// Σ u+03A3 D3
// σ u+03C3 F3
// ς u+03C2 F2
// Τ u+03A4 D4
// τ u+03C4 F4
// Υ u+03A5 D5
// υ u+03C5 F5
// Φ u+03A6 D6
// φ u+03C6 F6
// Χ u+03A7 D7
// χ u+03C7 F7
// Ψ u+03A8 D8
// ψ u+03C8 F8
// Ω u+03A9 D9
// ω u+03C9 F9
Imports System.Text
Module Example
Public Sub Main()
Dim enc As Encoding = Encoding.GetEncoding(1253)
Dim altEnc As Encoding = Encoding.GetEncoding("windows-1253")
Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
altEnc.CodePage, enc.Equals(altEnc))
Dim greekAlphabet As String = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
"Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
"Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
"Φ φ Χ χ Ψ ψ Ω ω"
Console.OutputEncoding = Encoding.UTF8
Dim bytes() As Byte = enc.GetBytes(greekAlphabet)
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
"Unicode Code Point", "Code Page 1253")
For ctr As Integer = 0 To bytes.Length - 1
If greekAlphabet(ctr).Equals(" "c) Then Continue For
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet(ctr),
GetCodePoint(greekAlphabet(ctr)), bytes(ctr))
Next
End Sub
Private Function GetCodePoint(ch As String) As String
Dim retVal As String = "u+"
Dim bytes() As Byte = Encoding.Unicode.GetBytes(ch)
For ctr As Integer = bytes.Length - 1 To 0 Step -1
retVal += bytes(ctr).ToString("X2")
Next
Return retVal
End Function
End Module
' The example displays the following output:
' Character Unicode Code Point Code Page 1253
' Α u+0391 C1
' α u+03B1 E1
' Β u+0392 C2
' β u+03B2 E2
' Γ u+0393 C3
' γ u+03B3 E3
' Δ u+0394 C4
' δ u+03B4 E4
' Ε u+0395 C5
' ε u+03B5 E5
' Ζ u+0396 C6
' ζ u+03B6 E6
' Η u+0397 C7
' η u+03B7 E7
' Θ u+0398 C8
' θ u+03B8 E8
' Ι u+0399 C9
' ι u+03B9 E9
' Κ u+039A CA
' κ u+03BA EA
' Λ u+039B CB
' λ u+03BB EB
' Μ u+039C CC
' μ u+03BC EC
' Ν u+039D CD
' ν u+03BD ED
' Ξ u+039E CE
' ξ u+03BE EE
' Ο u+039F CF
' ο u+03BF EF
' Π u+03A0 D0
' π u+03C0 F0
' Ρ u+03A1 D1
' ρ u+03C1 F1
' Σ u+03A3 D3
' σ u+03C3 F3
' ς u+03C2 F2
' Τ u+03A4 D4
' τ u+03C4 F4
' Υ u+03A5 D5
' υ u+03C5 F5
' Φ u+03A6 D6
' φ u+03C6 F6
' Χ u+03A7 D7
' χ u+03C7 F7
' Ψ u+03A8 D8
' ψ u+03C8 F8
' Ω u+03A9 D9
' ω u+03C9 F9
If the data to be converted is available only in sequential blocks (such as data read from a stream) or if the amount of data is so large that it needs to be divided into smaller blocks, you should use the Decoder or the Encoder provided by the GetDecoder method or the GetEncoder method, respectively, of a derived class.
The UTF-16 and the UTF-32 encoders can use the big endian byte order (most significant byte first) or the little endian byte order (least significant byte first). For example, the Latin Capital Letter A (U+0041) is serialized as follows (in hexadecimal):
UTF-16 big endian byte order: 00 41
UTF-16 little endian byte order: 41 00
UTF-32 big endian byte order: 00 00 00 41
UTF-32 little endian byte order: 41 00 00 00
It is generally more efficient to store Unicode characters using the native byte order. For example, it is better to use the little endian byte order on little endian platforms, such as Intel computers.
The GetPreamble method retrieves an array of bytes that includes the byte order mark (BOM). If this byte array is prefixed to an encoded stream, it helps the decoder to identify the encoding format used.
For more information on byte order and the byte order mark, see The Unicode Standard at the Unicode home page.
Note that the encoding classes allow errors to:
Silently change to a "?" character.
Use a "best fit" character.
Change to an application-specific behavior through use of the EncoderFallback and DecoderFallback classes with the U+FFFD Unicode replacement character.
You should throw an exception on any data stream error. An app either uses a "throwonerror" flag when applicable or uses the EncoderExceptionFallback and DecoderExceptionFallback classes. Best fit fallback is often not recommended because it can cause data loss or confusion and is slower than simple character replacements. For ANSI encodings, the best fit behavior is the default.
Constructors
Encoding() |
Initializes a new instance of the Encoding class. |
Encoding(Int32) |
Initializes a new instance of the Encoding class that corresponds to the specified code page. |
Encoding(Int32, EncoderFallback, DecoderFallback) |
Initializes a new instance of the Encoding class that corresponds to the specified code page with the specified encoder and decoder fallback strategies. |
Properties
ASCII |
Gets an encoding for the ASCII (7-bit) character set. |
BigEndianUnicode |
Gets an encoding for the UTF-16 format that uses the big endian byte order. |
BodyName |
When overridden in a derived class, gets a name for the current encoding that can be used with mail agent body tags. |
CodePage |
When overridden in a derived class, gets the code page identifier of the current Encoding. |
DecoderFallback |
Gets or sets the DecoderFallback object for the current Encoding object. |
Default |
Gets the default encoding for this .NET implementation. |
EncoderFallback |
Gets or sets the EncoderFallback object for the current Encoding object. |
EncodingName |
When overridden in a derived class, gets the human-readable description of the current encoding. |
HeaderName |
When overridden in a derived class, gets a name for the current encoding that can be used with mail agent header tags. |
IsBrowserDisplay |
When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for displaying content. |
IsBrowserSave |
When overridden in a derived class, gets a value indicating whether the current encoding can be used by browser clients for saving content. |
IsMailNewsDisplay |
When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for displaying content. |
IsMailNewsSave |
When overridden in a derived class, gets a value indicating whether the current encoding can be used by mail and news clients for saving content. |
IsReadOnly |
When overridden in a derived class, gets a value indicating whether the current encoding is read-only. |
IsSingleByte |
When overridden in a derived class, gets a value indicating whether the current encoding uses single-byte code points. |
Latin1 |
Gets an encoding for the Latin1 character set (ISO-8859-1). |
Preamble |
When overridden in a derived class, returns a span containing the sequence of bytes that specifies the encoding used. |
Unicode |
Gets an encoding for the UTF-16 format using the little endian byte order. |
UTF32 |
Gets an encoding for the UTF-32 format using the little endian byte order. |
UTF7 |
Obsolete.
Gets an encoding for the UTF-7 format. |
UTF8 |
Gets an encoding for the UTF-8 format. |
WebName |
When overridden in a derived class, gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding. |
WindowsCodePage |
When overridden in a derived class, gets the Windows operating system code page that most closely corresponds to the current encoding. |
Methods
Clone() |
When overridden in a derived class, creates a shallow copy of the current Encoding object. |
Convert(Encoding, Encoding, Byte[]) |
Converts an entire byte array from one encoding to another. |
Convert(Encoding, Encoding, Byte[], Int32, Int32) |
Converts a range of bytes in a byte array from one encoding to another. |
CreateTranscodingStream(Stream, Encoding, Encoding, Boolean) |
Creates a Stream that serves to transcode data between an inner Encoding and an outer Encoding, similar to Convert(Encoding, Encoding, Byte[]). |
Equals(Object) |
Determines whether the specified Object is equal to the current instance. |
GetByteCount(Char*, Int32) |
When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer. |
GetByteCount(Char[]) |
When overridden in a derived class, calculates the number of bytes produced by encoding all the characters in the specified character array. |
GetByteCount(Char[], Int32, Int32) |
When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. |
GetByteCount(ReadOnlySpan<Char>) |
When overridden in a derived class, calculates the number of bytes produced by encoding the characters in the specified character span. |
GetByteCount(String) |
When overridden in a derived class, calculates the number of bytes produced by encoding the characters in the specified string. |
GetByteCount(String, Int32, Int32) |
When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified string. |
GetBytes(Char*, Int32, Byte*, Int32) |
When overridden in a derived class, encodes a set of characters starting at the specified character pointer into a sequence of bytes that are stored starting at the specified byte pointer. |
GetBytes(Char[]) |
When overridden in a derived class, encodes all the characters in the specified character array into a sequence of bytes. |
GetBytes(Char[], Int32, Int32) |
When overridden in a derived class, encodes a set of characters from the specified character array into a sequence of bytes. |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
When overridden in a derived class, encodes a set of characters from the specified character array into the specified byte array. |
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
When overridden in a derived class, encodes into a span of bytes a set of characters from the specified read-only span. |
GetBytes(String) |
When overridden in a derived class, encodes all the characters in the specified string into a sequence of bytes. |
GetBytes(String, Int32, Int32) |
When overridden in a derived class, encodes into an array of bytes the number of characters specified by |
GetBytes(String, Int32, Int32, Byte[], Int32) |
When overridden in a derived class, encodes a set of characters from the specified string into the specified byte array. |
GetCharCount(Byte*, Int32) |
When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes starting at the specified byte pointer. |
GetCharCount(Byte[]) |
When overridden in a derived class, calculates the number of characters produced by decoding all the bytes in the specified byte array. |
GetCharCount(Byte[], Int32, Int32) |
When overridden in a derived class, calculates the number of characters produced by decoding a sequence of bytes from the specified byte array. |
GetCharCount(ReadOnlySpan<Byte>) |
When overridden in a derived class, calculates the number of characters produced by decoding the provided read-only byte span. |
GetChars(Byte*, Int32, Char*, Int32) |
When overridden in a derived class, decodes a sequence of bytes starting at the specified byte pointer into a set of characters that are stored starting at the specified character pointer. |
GetChars(Byte[]) |
When overridden in a derived class, decodes all the bytes in the specified byte array into a set of characters. |
GetChars(Byte[], Int32, Int32) |
When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a set of characters. |
GetChars(Byte[], Int32, Int32, Char[], Int32) |
When overridden in a derived class, decodes a sequence of bytes from the specified byte array into the specified character array. |
GetChars(ReadOnlySpan<Byte>, Span<Char>) |
When overridden in a derived class, decodes all the bytes in the specified read-only byte span into a character span. |
GetDecoder() |
When overridden in a derived class, obtains a decoder that converts an encoded sequence of bytes into a sequence of characters. |
GetEncoder() |
When overridden in a derived class, obtains an encoder that converts a sequence of Unicode characters into an encoded sequence of bytes. |
GetEncoding(Int32) |
Returns the encoding associated with the specified code page identifier. |
GetEncoding(Int32, EncoderFallback, DecoderFallback) |
Returns the encoding associated with the specified code page identifier. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded. |
GetEncoding(String) |
Returns the encoding associated with the specified code page name. |
GetEncoding(String, EncoderFallback, DecoderFallback) |
Returns the encoding associated with the specified code page name. Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded. |
GetEncodings() |
Returns an array that contains all encodings. |
GetHashCode() |
Returns the hash code for the current instance. |
GetMaxByteCount(Int32) |
When overridden in a derived class, calculates the maximum number of bytes produced by encoding the specified number of characters. |
GetMaxCharCount(Int32) |
When overridden in a derived class, calculates the maximum number of characters produced by decoding the specified number of bytes. |
GetPreamble() |
When overridden in a derived class, returns a sequence of bytes that specifies the encoding used. |
GetString(Byte*, Int32) |
When overridden in a derived class, decodes a specified number of bytes starting at a specified address into a string. |
GetString(Byte[]) |
When overridden in a derived class, decodes all the bytes in the specified byte array into a string. |
GetString(Byte[], Int32, Int32) |
When overridden in a derived class, decodes a sequence of bytes from the specified byte array into a string. |
GetString(ReadOnlySpan<Byte>) |
When overridden in a derived class, decodes all the bytes in the specified byte span into a string. |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
IsAlwaysNormalized() |
Gets a value indicating whether the current encoding is always normalized, using the default normalization form. |
IsAlwaysNormalized(NormalizationForm) |
When overridden in a derived class, gets a value indicating whether the current encoding is always normalized, using the specified normalization form. |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
RegisterProvider(EncodingProvider) |
Registers an encoding provider. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) | |
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |