Encoding Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Karakterkódolást jelöl.
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
- Öröklődés
-
Encoding
- Származtatott
- Attribútumok
- Megvalósítás
Példák
Az alábbi példa egy sztringet konvertál egyik kódolásból a másikba.
Note
Ebben byte[] a példában a tömb az egyetlen típus, amely a kódolt adatokat tartalmazza. A .NET Char és a String típus maga Unicode, így a GetChars hívás visszakódolja az adatokat Unicode-ra.
using System;
using System.Text;
class ConvertExample
{
static void Run()
{
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 Example1
Shared Sub Run()
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 (?)
Megjegyzések
A Encoding osztály karakterkódolást jelöl.
A kódolás a Unicode-karakterek halmazának bájtok sorozatává alakításának folyamata. Ezzel szemben a dekódolás a kódolt bájtok sorozatának Unicode-karakterekből álló készletté alakításának folyamata. A Unicode-átalakítási formátumokról (UTF-ekről) és a Encodingáltal támogatott egyéb kódolásokról a .NET Karakterkódolás című témakörben olvashat.
A Encoding tetszőleges bináris adatok, például bájttömbök helyett Unicode-karaktereken való működésre szolgál. Ha tetszőleges bináris adatokat kell szöveggé kódolnia, akkor olyan protokollt kell használnia, mint az uuencode, amelyet olyan metódusok implementálnak, mint a Convert.ToBase64CharArray.
A .NET a Encoding osztály alábbi implementációit biztosítja az aktuális Unicode-kódolások és más kódolások támogatásához:
ASCIIEncoding Unicode-karaktereket egyetlen 7 bites ASCII-karakterként kódol. Ez a kódolás csak az U+0000 és az U+007F közötti karakterértékeket támogatja. Kódlap 20127. A ASCII tulajdonságon keresztül is elérhető.
UTF7Encoding Unicode-karaktereket kódol az UTF-7 kódolással. Ez a kódolás az összes Unicode-karakterértéket támogatja. Kódlap 65000. A UTF7 tulajdonságon keresztül is elérhető.
UTF8Encoding Unicode-karaktereket kódol az UTF-8 kódolással. Ez a kódolás az összes Unicode-karakterértéket támogatja. Kódlap 65001. A UTF8 tulajdonságon keresztül is elérhető.
UnicodeEncoding Unicode-karaktereket kódol az UTF-16 kódolással. "A 'little endian' és a 'big endian' bájtsorrendek is támogatottak." A Unicode tulajdonságon és a BigEndianUnicode tulajdonságon keresztül is elérhető.
UTF32Encoding Unicode-karaktereket kódol az UTF-32 kódolással. A little endian (kódlap: 12000) és a big endian (kódlap: 12001) bájtrendelések egyaránt támogatottak. A UTF32 tulajdonságon keresztül is elérhető.
A Encoding osztály elsősorban a különböző kódolások és a Unicode közötti konvertálásra szolgál. Gyakran az egyik származtatott Unicode-osztály a megfelelő választás az alkalmazás számára.
A GetEncoding metódussal szerezze be az egyéb kódolásokat, és hívja meg a GetEncodings metódust az összes kódolás listájának lekéréséhez.
Kódolások listája
Az alábbi táblázat a .NET által támogatott kódolásokat sorolja fel. Felsorolja az egyes kódolások kódlapszámát, valamint a kódolás EncodingInfo.Name és EncodingInfo.DisplayName tulajdonságainak értékeit. Az .NET-keretrendszer támogatási, .NET Core támogatásivagy .NET 5 és újabb támogatási oszlopban látható pipa jelzi, hogy a kódlapot az adott .NET-implementáció natív módon támogatja, függetlenül az alapul szolgáló platformtól. A .NET-keretrendszer esetében a táblázatban felsorolt egyéb kódolások elérhetősége az operációs rendszertől függ. A .NET Core és a .NET 5 és újabb verziókhoz más kódolások is elérhetők a System.Text.CodePagesEncodingProvider osztály használatával vagy a System.Text.EncodingProvider osztályból származtatva.
Note
Azok a kódlapok, amelyek EncodingInfo.Name tulajdonsága egy nemzetközi szabványnak felel meg, nem feltétlenül teljes mértékben felelnek meg ennek a szabványnak.
| Kódlap | Name | Megjelenített név | .NET-keretrendszer támogatása | .NET Core-támogatás | .NET 5 és újabb támogatás |
|---|---|---|---|---|---|
| 37 | IBM037 | IBM EBCDIC (US-Canada) | |||
| 437 | IBM437 | OEM Egyesült Államok | |||
| 500 | IBM500 | IBM EBCDIC (nemzetközi) | |||
| 708 | ASMO-708 | Arab (ASMO 708) | |||
| 720 | DOS-720 | Arab (DOS) | |||
| 737 | ibm737 | Görög (DOS) | |||
| 775 | ibm775 | Balti (DOS) | |||
| 850 | ibm850 | Nyugat-Európai (DOS) | |||
| 852 | ibm852 | Közép-Európai (DOS) | |||
| 855 | IBM855 | OEM cirill betűs | |||
| 857 | ibm857 | Török (DOS) | |||
| 858 | IBM00858 | OEM többnyelvű latin I | |||
| 860 | IBM860 | Portugál (DOS) | |||
| 861 | ibm861 | Izlandi (DOS) | |||
| 862 | DOS-862 | Héber (DOS) | |||
| 863 | IBM863 | Francia-kanadai (DOS) | |||
| 864 | IBM864 | Arab (864) | |||
| 865 | IBM865 | Északi (DOS) | |||
| 866 | cp866 | Cirill (DOS karakterkészlet) | |||
| 869 | ibm869 | Görög, Modern (DOS) | |||
| 870 | IBM870 | IBM EBCDIC (többnyelvű latin-2) | |||
| 874 | windows-874 | Thai (Windows) | |||
| 875 | cp875 | IBM EBCDIC (görög modern) | |||
| 932 | shift_jis | Japán (Shift-JIS) | |||
| 936 | gb2312 | Egyszerűsített kínai (GB2312) | ✓ | ||
| 949 | ks_c_5601-1987 | Koreai | |||
| 950 | big5 | Hagyományos kínai (Big5) | |||
| 1026 | IBM1026 | IBM EBCDIC (török latin-5) | |||
| 1047 | IBM01047 | IBM Latin-1 | |||
| 1140 | IBM01140 | IBM EBCDIC (USA-Canada-Euro) | |||
| 1141 | IBM01141 | IBM EBCDIC (Germany-Euro) | |||
| 1142 | IBM01142 | IBM EBCDIC (Dánia -Norway-Euro) | |||
| 1143 | IBM01143 | IBM EBCDIC (Finnország-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 (nagy vég-trendű) | ✓ | ✓ | ✓ |
| 1250 | windows-1250 | Közép-Európai (Windows) | |||
| 1251 | windows-1251 | Cirill betűs (Windows) | |||
| 1252 | Windows-1252 | Nyugat-európai (Windows) | ✓ | ||
| 1253 | windows-1253 | Görög (Windows) | |||
| 1254 | windows-1254 | Török (Windows) | |||
| 1255 | windows-1255 | Héber (Windows) | |||
| 1256 | windows-1256 | Arab (Windows) | |||
| 1257 | windows-1257 | Balti (Windows) | |||
| 1258 | windows-1258 | Vietnami (Windows) | |||
| 1361 | Johab | Koreai (Johab) | |||
| 10000 | Macintosh | Nyugat-európai (Mac) | |||
| 10001 | x-mac-japanese | Japán (Mac) | |||
| 10002 | x-mac-chinesetrad | Hagyományos kínai (Mac) | |||
| 10003 | x-mac-koreai | Koreai (Mac) | ✓ | ||
| 10004 | x-mac-arabic | Arab (Mac) | |||
| 10005 | x-mac-héber | Héber (Mac) | |||
| 10006 | x-mac-görög | Görög (Mac) | |||
| 10007 | x-mac-cirill | Cirill betű (Mac) | |||
| 10008 | x-mac-chinesesimp | Egyszerűsített kínai (Mac) | ✓ | ||
| 10010 | x-mac-román | Román (Mac) | |||
| 10017 | x-mac-ukrán | Ukrán (Mac) | |||
| 10021 | x-mac-thai | Thai (Mac) | |||
| 10029 | x-mac-ce | Közép-európai (Mac) | |||
| 10079 | x-mac-izlandi | Izlandi (Mac) | |||
| 10081 | x-mac-török | Török (Mac) | |||
| 10082 | x-mac-horvát | Horvát (Mac) | |||
| 12000 | utf-32 | Unicode (UTF-32) | ✓ | ✓ | ✓ |
| 12001 | utf-32BE | Unicode (UTF-32 nagy végződésű) | ✓ | ✓ | ✓ |
| 20000 | x-Chinese-CNS | Hagyományos kínai (CNS) | |||
| 20001 | x-cp20001 | TCA Tajvan | |||
| 20002 | x-Chinese-Eten | Hagyományos kínai (Eten) | |||
| 20003 | x-cp20003 | IBM5550 Tajvan | |||
| 20004 | x-cp20004 | TeleText Tajvan | |||
| 20005 | x-cp20005 | Wang Tajvan | |||
| 20105 | x-IA5 | Nyugat-európai (IA5) | |||
| 20106 | x-IA5-German | Német (IA5) | |||
| 20107 | x-IA5-Swedish | Svéd (IA5) | |||
| 20108 | x-IA5-Norwegian | Norvég (IA5) | |||
| 20127 | us-ascii | US-ASCII | ✓ | ✓ | ✓ |
| 20261 | x-cp20261 | T.61 | |||
| 20269 | x-cp20269 | ISO-6937 | |||
| 20273 | IBM273 | IBM EBCDIC (Németország) | |||
| 20277 | IBM277 | IBM EBCDIC (Denmark-Norway) | |||
| 20278 | IBM278 | IBM EBCDIC (Finland-Sweden) | |||
| 20280 | IBM280 | IBM EBCDIC (Olaszország) | |||
| 20284 | IBM284 | IBM EBCDIC (Spanyolország) | |||
| 20285 | IBM285 | IBM EBCDIC (Egyesült Királyság) | |||
| 20290 | IBM290 | IBM EBCDIC (japán katakana) | |||
| 20297 | IBM297 | IBM EBCDIC (Franciaország) | |||
| 20420 | IBM420 | IBM EBCDIC (Arab) | |||
| 20423 | IBM423 | IBM EBCDIC (görög) | |||
| 20424 | IBM424 | IBM EBCDIC (héber) | |||
| 20833 | x-EBCDIC-KoreanExtended | IBM EBCDIC (koreai kiterjesztett) | |||
| 20838 | IBM-Thai | IBM EBCDIC (thai) | |||
| 20866 | koi8-r | cirill írás (KOI8-R) | |||
| 20871 | IBM871 | IBM EBCDIC (izlandi) | |||
| 20880 | IBM880 | IBM EBCDIC (cirill orosz) | |||
| 20905 | IBM905 | IBM EBCDIC (török) | |||
| 20924 | IBM00924 | IBM Latin-1 | |||
| 20932 | EUC-JP | Japán (JIS 0208-1990 és 0212-1990) | |||
| 20936 | x-cp20936 | Egyszerűsített kínai (GB2312-80) | ✓ | ||
| 20949 | x-cp20949 | Koreai Wansung | ✓ | ||
| 21025 | cp1025 | IBM EBCDIC (cirill Serbian-Bulgarian) | |||
| 21866 | koi8-u | Cirill (KOI8-U) | |||
| 28591 | iso-8859-1 | Nyugat-Európai (ISO) | ✓ | ✓ | ✓ |
| 28592 | iso-8859-2 | Közép-európai (ISO) | |||
| 28593 | iso-8859-3 | Latin 3 (ISO) | |||
| 28594 | iso-8859-4 | Balti (ISO) | |||
| 28595 | iso-8859-5 | Cirill (ISO) | |||
| 28596 | iso-8859-6 | Arab (ISO) | |||
| 28597 | iso-8859-7 | Görög (ISO) | |||
| 28598 | iso-8859-8 | Héber (ISO-Visual) | ✓ | ||
| 28599 | iso-8859-9 | Török (ISO) | |||
| 28603 | iso-8859-13 | Észt (ISO) | |||
| 28605 | iso-8859-15 | Latin 9 (ISO) | |||
| 29001 | x-Europa | Europa | |||
| 38598 | iso-8859-8-i | Héber (ISO-Logical) | ✓ | ||
| 50220 | iso-2022-jp | Japán (JIS) | ✓ | ||
| 50221 | csISO2022JP | Japán (JIS-Allow 1 bájt Kana) | ✓ | ||
| 50222 | iso-2022-jp | Japán (JIS-Allow 1 bájt kana - SO/SI) | ✓ | ||
| 50225 | iso-2022-kr | Koreai (ISO) | ✓ | ||
| 50227 | x-cp50227 | Egyszerűsített kínai (ISO-2022) | ✓ | ||
| 51932 | euc-jp | Japán (EUC) | ✓ | ||
| 51936 | EUC-CN | Egyszerűsített kínai (EUC) | ✓ | ||
| 51949 | euc-kr | Koreai (EUC) | ✓ | ||
| 52936 | hz-gb-2312 | Egyszerűsített kínai (HZ) | ✓ | ||
| 54936 | GB18030 | Egyszerűsített kínai (GB18030) | ✓ | ||
| 57002 | x-iscii-de | ISCII Dévanágari | ✓ | ||
| 57003 | x-iscii-be | ISCII Bengáli | ✓ | ||
| 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 pandzsábi | ✓ | ||
| 65000 | utf-7 | Unicode (UTF-7) | ✓ | ✓ | |
| 65001 | utf-8 | Unicode (UTF-8) | ✓ | ✓ | ✓ |
Az alábbi példa meghívja a GetEncoding(Int32) és GetEncoding(String) metódusokat a görög (Windows) kódlap kódolásának lekéréséhez. Összehasonlítja a metódushívások által visszaadott Encoding objektumokat, hogy azok egyenrangúak legyenek, majd a térképek megjelenítik a Unicode kódpontot és a megfelelő kódlap értékét a görög ábécé minden egyes karakteréhez.
using System;
using System.Text;
public class GetEncodingExample
{
public static void Run()
{
Encoding enc = Encoding.GetEncoding(1253);
Encoding altEnc = Encoding.GetEncoding("windows-1253");
Console.WriteLine($"{enc.EncodingName} = Code Page {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 Example2
Public Sub Run()
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
Ha az átalakítandó adatok csak szekvenciális blokkokban (például adatfolyamból beolvasott adatokban) érhetők el, vagy ha az adatmennyiség olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder metódus vagy a származtatott osztály Encoder metódusa által biztosított GetDecoder vagy GetEncoder kell használnia.
Az UTF-16 és az UTF-32 kódolók használhatják a big endian bájtsorrendet (elsőként a legjelentősebb bájt) vagy a kis endian bájtsorrendet (a legkevésbé jelentős bájt első). Az A latin betű (U+0041) például a következőképpen szerializálva van (hexadecimálisan):
- UTF-16 nagy végű bájtsorrend: 00 41
- UTF-16 kis végű bájtsorrend: 41 00
- UTF-32 big endian bájtsorrend: 00 00 00 41
- UTF-32 kis endián bájtsorrend: 41 00 00 00
Általában hatékonyabb Unicode-karaktereket tárolni a natív bájtsorrend használatával. Jobb például a kis endian bájtsorrendet használni a kis endian platformokon, például az Intel számítógépeken.
A GetPreamble metódus bájtok tömbjét kéri le, amelyek tartalmazzák a bájtrendjelet (BOM). Ha ez a bájttömb egy kódolt adatfolyamra van előtagolva, segít a dekódolónak azonosítani a használt kódolási formátumot.
A bájtsorrendről és a bájtsorrendjelről további információt a Unicode Standard Unicode kezdőlapjántalál.
Vegye figyelembe, hogy a kódolási osztályok a következő hibákat teszik lehetővé:
- Csendesen váltson át a "?" karakterre.
- Használjon "legjobban illeszkedő" karaktert.
- Váltson alkalmazásspecifikus viselkedésre az U+FFFD Unicode helyettesítő karakterrel rendelkező EncoderFallback és DecoderFallback osztályok használatával.
Minden adatfolyam-hiba esetén kivételt kell dobnia. Egy alkalmazás vagy "throwonerror" jelzőt használ, ha alkalmazható, vagy a EncoderExceptionFallback és DecoderExceptionFallback osztályokat használja. A legjobb illeszkedési helyettesítés gyakran nem ajánlott, mert adatvesztést vagy zavart okozhat, és lassabb, mint az egyszerű karaktercserék. AZ ANSI-kódolások esetében a legjobb illesztési viselkedés az alapértelmezett.
Konstruktorok
| Name | Description |
|---|---|
| Encoding() |
Inicializálja a Encoding osztály új példányát. |
| Encoding(Int32, EncoderFallback, DecoderFallback) |
Inicializálja az Encoding osztály új példányát, amely megfelel a megadott kódlapnak a megadott kódoló és dekóder tartalék stratégiákkal. |
| Encoding(Int32) |
Inicializálja az Encoding osztály új példányát, amely megfelel a megadott kódlapnak. |
Tulajdonságok
| Name | Description |
|---|---|
| ASCII |
Beolvas egy kódolást az ASCII (7 bites) karakterkészlethez. |
| BigEndianUnicode |
Az UTF-16 formátumhoz kap egy kódolást, amely a big endian bájtsorrendet használja. |
| BodyName |
Ha felül van bírálva egy származtatott osztályban, megkapja az aktuális kódolás nevét, amely a levelezési ügynök törzscímkéivel használható. |
| CodePage |
Ha felül van bírálva egy származtatott osztályban, lekéri az aktuális Encodingkódlap azonosítóját. |
| DecoderFallback |
Lekéri vagy beállítja az DecoderFallback aktuális Encoding objektum objektumát. |
| Default |
Lekéri a .NET implementáció alapértelmezett kódolását. |
| EncoderFallback |
Lekéri vagy beállítja az EncoderFallback aktuális Encoding objektum objektumát. |
| EncodingName |
Ha felül van bírálva egy származtatott osztályban, lekéri az aktuális kódolás ember által olvasható leírását. |
| HeaderName |
Ha felül van bírálva egy származtatott osztályban, lekéri az aktuális kódolás nevét, amely a levelezési ügynök fejléccímkéivel használható. |
| IsBrowserDisplay |
Ha egy származtatott osztályban felül van bírálva, egy értéket kap, amely jelzi, hogy a böngészőügyfelek használhatják-e az aktuális kódolást a tartalom megjelenítéséhez. |
| IsBrowserSave |
Ha egy származtatott osztályban felül van bírálva, egy értéket kap, amely jelzi, hogy a böngészőügyfelek használhatják-e az aktuális kódolást a tartalom mentéséhez. |
| IsMailNewsDisplay |
Ha egy származtatott osztályban felül van bírálva, a rendszer egy értéket kap, amely jelzi, hogy az aktuális kódolás használható-e a levelezési és híralkalmazások számára a tartalom megjelenítéséhez. |
| IsMailNewsSave |
Ha felül van bírálva egy származtatott osztályban, egy értéket kap, amely jelzi, hogy az aktuális kódolás használható-e a levelezési és híralkalmazások számára a tartalom mentéséhez. |
| IsReadOnly |
Ha egy származtatott osztályban felül van bírálva, egy értéket kap, amely jelzi, hogy az aktuális kódolás írásvédett-e. |
| IsSingleByte |
Ha egy származtatott osztályban felül van bírálva, egy értéket kap, amely jelzi, hogy az aktuális kódolás egy bájtos kódpontokat használ-e. |
| Latin1 |
Kódolást kap a Latin1 karakterkészlethez (ISO-8859-1). |
| Preamble |
Ha egy származtatott osztályban felülbírált, a használt kódolást meghatározó bájtok sorozatát tartalmazó spant ad vissza. |
| Unicode |
Beolvas egy kódolást az UTF-16 formátumhoz a kis endian bájtsorrend használatával. |
| UTF32 |
Beolvas egy kódolást az UTF-32 formátumhoz a kis endian bájtsorrend használatával. |
| UTF7 |
Elavult.
Lekéri az UTF-7 formátum kódolását. |
| UTF8 |
Lekéri az UTF-8 formátum kódolását. |
| WebName |
Ha felül van bírálva egy származtatott osztályban, az aktuális kódoláshoz az Internet Assigned Numbers Authority (IANA) regisztrálja a nevet. |
| WindowsCodePage |
Ha felül van bírálva egy származtatott osztályban, lekéri a Windows operációs rendszer kódlapját, amely a leginkább megfelel az aktuális kódolásnak. |
Metódusok
| Name | Description |
|---|---|
| Clone() |
Ha felül van bírálva egy származtatott osztályban, létrehozza az aktuális Encoding objektum sekély másolatát. |
| Convert(Encoding, Encoding, Byte[], Int32, Int32) |
Bájttartományt alakít át egy bájttömbben egyik kódolásból a másikba. |
| Convert(Encoding, Encoding, Byte[]) |
Egy teljes bájttömböt konvertál egyik kódolásból a másikba. |
| CreateTranscodingStream(Stream, Encoding, Encoding, Boolean) |
Létrehoz egy Stream , az adatok Encoding belső és külső Encodingközötti átkódolására szolgáló , hasonló Convert(Encoding, Encoding, Byte[])elemet. |
| Equals(Object) |
Meghatározza, hogy a megadott Object érték megegyezik-e az aktuális példánnyal. |
| GetByteCount(Char[], Int32, Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott karaktertömbből származó karakterkészlet kódolásával előállított bájtok számát. |
| GetByteCount(Char[]) |
Származtatott osztályban felülbírálva kiszámítja a megadott karaktertömb összes karakterének kódolásával előállított bájtok számát. |
| GetByteCount(Char*, Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott karaktermutatótól kezdődő karakterkészlet kódolásával előállított bájtok számát. |
| GetByteCount(ReadOnlySpan<Char>) |
Származtatott osztályban felülbírálva kiszámítja a megadott karaktertartományban lévő karakterek kódolásával előállított bájtok számát. |
| GetByteCount(String, Int32, Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott sztring egy karakterkészletének kódolásával előállított bájtok számát. |
| GetByteCount(String) |
Származtatott osztályban felülbírálva kiszámítja a megadott sztringben szereplő karakterek kódolásával előállított bájtok számát. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Ha egy származtatott osztályban felül van bírálva, a megadott karaktertömbből a megadott bájttömbbe kódol egy karakterkészletet. |
| GetBytes(Char[], Int32, Int32) |
Ha egy származtatott osztályban felülbírált, a megadott karaktertömb karakterkészletét bájtok sorozatába kódolja. |
| GetBytes(Char[]) |
Ha felülbírált egy származtatott osztályban, a megadott karaktertömb összes karakterét bájtok sorozatába kódolja. |
| GetBytes(Char*, Int32, Byte*, Int32) |
Ha egy származtatott osztályban felülbírál, a megadott karaktermutatótól kezdődő karakterkészletet bájtok sorozatába kódolja, amelyek a megadott bájtmutatótól kezdve vannak tárolva. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Ha egy származtatott osztályban felülbírált, bájtok közötti tartományba kódolja a megadott írásvédett tartomány karakterkészletét. |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Származtatott osztály felülírásakor a megadott karakterlánc karakterkészletét kódolja a megadott bájttömbbe. |
| GetBytes(String, Int32, Int32) |
Ha egy származtatott osztályban felülbírált, bájtokból álló tömbbe kódolja a megadott sztringben megadott |
| GetBytes(String) |
Ha felülbírált egy származtatott osztályban, a megadott sztringben szereplő összes karaktert bájtok sorozatába kódolja. |
| GetCharCount(Byte[], Int32, Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott bájttömbből származó bájtsorozat dekódolásával előállított karakterek számát. |
| GetCharCount(Byte[]) |
Származtatott osztályban felülbírálva kiszámítja a megadott bájttömb összes bájtjának dekódolásával előállított karakterek számát. |
| GetCharCount(Byte*, Int32) |
Származtatott osztályban felülbírálva kiszámítja a bájtok sorozatának a megadott bájtmutatótól kezdődő dekódolásával előállított karakterek számát. |
| GetCharCount(ReadOnlySpan<Byte>) |
Ha egy származtatott osztályban felül van bírálva, kiszámítja a megadott írásvédett bájttartomány dekódolásával előállított karakterek számát. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Ha egy származtatott osztályban felülbírál, a megadott bájttömbből a megadott karaktertömbbe dekódolja a bájtok sorozatát. |
| GetChars(Byte[], Int32, Int32) |
Ha egy származtatott osztályban felülbírál, a megadott bájttömbből származó bájtok sorozatát karakterkészletté dekódolja. |
| GetChars(Byte[]) |
Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját karakterkészletté alakítja. |
| GetChars(Byte*, Int32, Char*, Int32) |
Ha egy származtatott osztályban felülbírál, a megadott bájtmutatótól kezdődő bájtsorozatot a megadott karaktermutatótól kezdődően tárolt karakterek készletére dekódolja. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Ha egy származtatott osztályban felülbírál, a megadott írásvédett bájttartományban lévő összes bájtot karakterskávé alakítja. |
| GetDecoder() |
Ha felülbírált egy származtatott osztályban, lekér egy dekódolót, amely bájtok kódolt sorozatát karaktersorozattá alakítja. |
| GetEncoder() |
Származtatott osztályban felülbírált kódolót kap, amely Unicode-karakterek sorozatát bájtok kódolt sorozatává alakítja. |
| GetEncoding(Int32, EncoderFallback, DecoderFallback) |
A megadott kódoldal-azonosítóhoz társított kódolást adja vissza. A paraméterek hibakezelőt adnak a nem kódolható karakterekhez és a nem dekódolható bájtütemezésekhez. |
| GetEncoding(Int32) |
A megadott kódoldal-azonosítóhoz társított kódolást adja vissza. |
| GetEncoding(String, EncoderFallback, DecoderFallback) |
A megadott kódlap nevéhez társított kódolást adja vissza. A paraméterek hibakezelőt adnak a nem kódolható karakterekhez és a nem dekódolható bájtütemezésekhez. |
| GetEncoding(String) |
A megadott kódlap nevéhez társított kódolást adja vissza. |
| GetEncodings() |
Az összes kódolást tartalmazó tömböt ad vissza. |
| GetHashCode() |
Az aktuális példány kivonatkódját adja vissza. |
| GetMaxByteCount(Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott számú karakter kódolásával előállított bájtok maximális számát. |
| GetMaxCharCount(Int32) |
Származtatott osztályban felülbírálva kiszámítja a megadott bájtszám dekódolásával előállított karakterek maximális számát. |
| GetPreamble() |
Ha felülbírált egy származtatott osztályban, a használt kódolást meghatározó bájtok sorozatát adja vissza. |
| GetString(Byte[], Int32, Int32) |
Ha egy származtatott osztályban felülbírál, a megadott bájttömbből származó bájtok sorozatát sztringgé dekódolja. |
| GetString(Byte[]) |
Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját sztringgé alakítja. |
| GetString(Byte*, Int32) |
Ha egy származtatott osztályban felülbírál, egy megadott címtől kezdődően megadott számú bájtot kódol sztringgé. |
| GetString(ReadOnlySpan<Byte>) |
Származtatott osztályban felülbírálva a megadott bájttartomány összes bájtját sztringgé alakítja. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsAlwaysNormalized() |
Beolvas egy értéket, amely jelzi, hogy az aktuális kódolás mindig normalizálva van-e az alapértelmezett normalizálási űrlap használatával. |
| IsAlwaysNormalized(NormalizationForm) |
Ha egy származtatott osztályban felül van bírálva, egy értéket kap, amely jelzi, hogy az aktuális kódolás mindig normalizálva van-e a megadott normalizálási űrlap használatával. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| RegisterProvider(EncodingProvider) |
Kódolási szolgáltatót regisztrál. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
A megadott írásvédett tartományból származó karaktereket bájtok halmazára kódolja, ha a cél elég nagy. |
| TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
A megadott írásvédett tartományból származó bájtok halmazát dekódolja, ha a cél elég nagy. |
Bővítő metódusok
| Name | Description |
|---|---|
| GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
Dekódolja a megadott ReadOnlySequence<T> értéket a megadott értékre |
| GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
A megadott értéket kódolja a megadott ReadOnlySequence<T> értékre |
| GetBytes(Encoding, ReadOnlySequence<Char>) |
A megadott tömbbe ReadOnlySequence<T> kódolja a megadott .ByteEncoding |
| GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Kódolja a megadott ReadOnlySpan<T> értéket a megadott értékre |
| GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Dekódolja a megadott ReadOnlySequence<T> értéket a megadott értékre |
| GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Dekódolja a megadott ReadOnlySequence<T> értéket a megadott értékre |
| GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Dekódolja a megadott ReadOnlySpan<T> értéket a megadott értékre |
| GetString(Encoding, ReadOnlySequence<Byte>) |
A megadott kód dekódolása a ReadOnlySequence<T> megadott StringEncodinghasználatával. |
A következőre érvényes:
Lásd még
Az .NET