Sdílet prostřednictvím


ASCIIEncoding Třída

Definice

Představuje kódování znaků ASCII znaků Unicode.

public ref class ASCIIEncoding : System::Text::Encoding
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ASCIIEncoding : System.Text.Encoding
type ASCIIEncoding = class
    inherit Encoding
[<System.Serializable>]
type ASCIIEncoding = class
    inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ASCIIEncoding = class
    inherit Encoding
Public Class ASCIIEncoding
Inherits Encoding
Dědičnost
ASCIIEncoding
Atributy

Příklady

Následující příklad ukazuje, jak kódovat znaky Unicode do ASCII. Všimněte si ztráty dat, ke kterým dochází, když vaše aplikace používá ASCIIEncoding kódování znaků Unicode mimo rozsah ASCII.

using System;
using System.Text;

class ASCIIEncodingExample {
    public static void Main() {
        // The encoding.
        ASCIIEncoding ascii = new ASCIIEncoding();
        
        // A Unicode string with two characters outside the ASCII code range.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside the ASCII code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Save positions of the special characters for later reference.
        int indexOfPi = unicodeString.IndexOf('\u03a0');
        int indexOfSigma = unicodeString.IndexOf('\u03a3');

        // Encode string.
        Byte[] encodedBytes = ascii.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
        
        // Notice that the special characters have been replaced with
        // the value 63, which is the ASCII character code for '?'.
        Console.WriteLine();
        Console.WriteLine(
            "Value at position of Pi character: {0}",
            encodedBytes[indexOfPi]
        );
        Console.WriteLine(
            "Value at position of Sigma character: {0}",
            encodedBytes[indexOfSigma]
        );

        // Decode bytes back to string.
        // Notice missing Pi and Sigma characters.
        String decodedString = ascii.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}
// The example displays the following output:
//    Original string:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (Π) and Sigma (Σ).
//
//    Encoded bytes:
//    [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
//    [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
//    104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
//    00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
//    83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
//    05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
//    [46]
//
//    Value at position of Pi character: 63
//    Value at position of Sigma character: 63
//
//    Decoded bytes:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (?) and Sigma (?).
Imports System.Text

Class ASCIIEncodingExample
    Public Shared Sub Main()
        ' The encoding.
        Dim ascii As New ASCIIEncoding()

        ' A Unicode string with two characters outside the ASCII code range.
        Dim unicodeString As String = _
            "This Unicode string contains two characters " & _
            "with codes outside the ASCII code range, " & _
            "Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine(unicodeString)

        ' Save positions of the special characters for later reference.
        Dim indexOfPi As Integer = unicodeString.IndexOf(ChrW(928))
        Dim indexOfSigma As Integer = unicodeString.IndexOf(ChrW(931))

        ' Encode string.
        Dim encodedBytes As Byte() = ascii.GetBytes(unicodeString)
        Console.WriteLine()
        Console.WriteLine("Encoded bytes:")
        Dim b As Byte
        For Each b In encodedBytes
            Console.Write("[{0}]", b)
        Next b
        Console.WriteLine()

        ' Notice that the special characters have been replaced with
        ' the value 63, which is the ASCII character code for '?'.
        Console.WriteLine()
        Console.WriteLine( _
            "Value at position of Pi character: {0}", _
            encodedBytes(indexOfPi) _
        )
        Console.WriteLine( _
            "Value at position of Sigma character: {0}", _
            encodedBytes(indexOfSigma) _
        )

        ' Decode bytes back to string.
        ' Notice missing Pi and Sigma characters.
        Dim decodedString As String = ascii.GetString(encodedBytes)
        Console.WriteLine()
        Console.WriteLine("Decoded bytes:")
        Console.WriteLine(decodedString)
    End Sub
End Class
' The example displays the following output:
'    Original string:
'    This Unicode string contains two characters with codes outside the ASCII code ra
'    nge, Pi (Π) and Sigma (Σ).
'
'    Encoded bytes:
'    [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
'    [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
'    104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
'    00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
'    83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
'    05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
'    [46]
'
'    Value at position of Pi character: 63
'    Value at position of Sigma character: 63
'
'    Decoded bytes:
'    This Unicode string contains two characters with codes outside the ASCII code ra
'    nge, Pi (?) and Sigma (?).

Poznámky

Kódování je proces transformace sady znaků Unicode na posloupnost bajtů. Dekódování je proces transformace sekvence kódovaných bajtů na sadu znaků Unicode.

ASCIIEncoding odpovídá znakové stránce Windows 20127. Vzhledem k tomu, že ASCII je 7bitové kódování, jsou znaky ASCII omezené na nejnižších 128 znaků Unicode od U+0000 do U+007F. Pokud použijete výchozí kodér vrácený Encoding.ASCII vlastností nebo ASCIIEncoding konstruktorem, nahradí se znaky mimo tento rozsah otazníkem (?) před provedením operace kódování. Vzhledem k tomu, že ASCIIEncoding třída podporuje pouze omezenou znakovou sadu, UTF8EncodingUnicodeEncodingjsou třídy , a UTF32Encoding třídy vhodnější pro globalizované aplikace. Následující aspekty vám můžou pomoct při rozhodování, jestli se má použít ASCIIEncoding:

  • Některé protokoly vyžadují ASCII nebo podmnožinu ASCII. V těchto případech je vhodné kódování ASCII.

  • Pokud se očekává 8bitové kódování, pak ASCII pravděpodobně není správnou volbou. Místo toho zvažte použití UTF8 místo ASCII. Pro znaky U+0000 až U+007F jsou výsledky stejné, ale všechny znaky Unicode jsou reprezentovatelné v UTF-8, což zabraňuje ztrátě dat.

Upozornění

ASCIIEncoding neposkytuje detekci chyb. Z bezpečnostníchdůvodůch UTF8EncodingUnicodeEncodingUTF32Encoding

Metoda GetByteCount určuje, kolik bajtů má za následek kódování sady znaků Unicode a GetBytes metoda provádí skutečné kódování.

Podobně metoda určuje, GetCharCount kolik znaků má za následek dekódování posloupnosti bajtů a GetChars metody GetString provádějí skutečné dekódování.

Všimněte si, že výchozí ASCIIEncoding konstruktor samotný nemusí mít odpovídající chování pro vaši aplikaci. Možná budete chtít zvážit nastavení EncoderFallback nebo DecoderFallback vlastnosti na EncoderExceptionFallback pořadí s 8bitovou sadou.DecoderExceptionFallback Vlastní chování může být také vhodné pro tyto případy.

Konstruktory

Name Description
ASCIIEncoding()

Inicializuje novou instanci ASCIIEncoding třídy.

Vlastnosti

Name Description
BodyName

Při přepsání v odvozené třídě získá název pro aktuální kódování, které lze použít se značkami textu agenta pošty.

(Zděděno od Encoding)
CodePage

Při přepsání v odvozené třídě získá identifikátor znakové stránky aktuálního Encoding.

(Zděděno od Encoding)
DecoderFallback

Získá nebo nastaví DecoderFallback objekt pro aktuální Encoding objekt.

(Zděděno od Encoding)
EncoderFallback

Získá nebo nastaví EncoderFallback objekt pro aktuální Encoding objekt.

(Zděděno od Encoding)
EncodingName

Při přepsání v odvozené třídě získá human-readable popis aktuální kódování.

(Zděděno od Encoding)
HeaderName

Při přepsání v odvozené třídě získá název pro aktuální kódování, které lze použít se značkami hlavičky agenta pošty.

(Zděděno od Encoding)
IsBrowserDisplay

Při přepsání v odvozené třídě získá hodnotu určující, zda aktuální kódování může být použito klienty prohlížeče pro zobrazení obsahu.

(Zděděno od Encoding)
IsBrowserSave

Při přepsání v odvozené třídě získá hodnotu určující, zda aktuální kódování lze použít klienty prohlížeče pro ukládání obsahu.

(Zděděno od Encoding)
IsMailNewsDisplay

Při přepsání v odvozené třídě získá hodnotu označující, zda aktuální kódování může být používáno klienty pošty a zpráv pro zobrazení obsahu.

(Zděděno od Encoding)
IsMailNewsSave

Při přepsání v odvozené třídě získá hodnotu označující, zda aktuální kódování může být používáno poštovními a informačními klienty k ukládání obsahu.

(Zděděno od Encoding)
IsReadOnly

Při přepsání v odvozené třídě získá hodnotu určující, zda aktuální kódování je jen pro čtení.

(Zděděno od Encoding)
IsSingleByte

Získá hodnotu určující, zda aktuální kódování používá jednobajtů kódové body.

Preamble

Při přepsání v odvozené třídě vrátí rozsah obsahující posloupnost bajtů, která určuje použité kódování.

(Zděděno od Encoding)
WebName

Při přepsání v odvozené třídě získá název zaregistrovaný v IANA (Internet Assigned Numbers Authority) pro aktuální kódování.

(Zděděno od Encoding)
WindowsCodePage

Při přepsání v odvozené třídě získá znakovou stránku operačního systému Windows, která nejvíce odpovídá aktuálnímu kódování.

(Zděděno od Encoding)

Metody

Name Description
Clone()

Při přepsání v odvozené třídě vytvoří mělké kopie aktuálního Encoding objektu.

(Zděděno od Encoding)
Equals(Object)

Určuje, zda je zadaná Object hodnota rovna aktuální instanci.

(Zděděno od Encoding)
GetByteCount(Char[], Int32, Int32)

Vypočítá počet bajtů vytvořených kódováním sady znaků ze zadaného pole znaků.

GetByteCount(Char[])

Při přepsání v odvozené třídě vypočítá počet bajtů vytvořených kódováním všech znaků v zadaném poli znaků.

(Zděděno od Encoding)
GetByteCount(Char*, Int32)

Vypočítá počet bajtů vytvořených kódováním sady znaků začínající zadaným ukazatelem znaku.

GetByteCount(ReadOnlySpan<Char>)

Vypočítá počet bajtů vytvořených kódováním zadaného rozsahu znaků.

GetByteCount(ReadOnlySpan<Char>)

Při přepsání v odvozené třídě vypočítá počet bajtů vytvořených kódováním znaků v zadaném rozsahu znaků.

(Zděděno od Encoding)
GetByteCount(String, Int32, Int32)

Při přepsání v odvozené třídě vypočítá počet bajtů vytvořených kódováním sady znaků ze zadaného řetězce.

(Zděděno od Encoding)
GetByteCount(String)

Vypočítá počet bajtů vytvořených kódováním znaků v zadaném Stringargumentu .

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Zakóduje sadu znaků ze zadaného pole znaků do zadaného bajtového pole.

GetBytes(Char[], Int32, Int32)

Při přepsání v odvozené třídě zakóduje sadu znaků ze zadaného pole znaků do posloupnosti bajtů.

(Zděděno od Encoding)
GetBytes(Char[])

Při přepsání v odvozené třídě zakóduje všechny znaky v zadaném znakovém poli do posloupnosti bajtů.

(Zděděno od Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Zakóduje sadu znaků začínající zadaným ukazatelem znaků do posloupnosti bajtů, které jsou uloženy od zadaného bajtového ukazatele.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Zakóduje zadané rozsahy znaků do zadaného rozsahu bajtů.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Při přepsání v odvozené třídě zakóduje do rozsahu bajtů sadu znaků ze zadaného rozsahu jen pro čtení.

(Zděděno od Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Zakóduje sadu znaků ze zadaného String pole bajtů.

GetBytes(String, Int32, Int32)

Při přepsání v odvozené třídě kóduje do pole bajtů počet znaků zadaný count v zadaném řetězci počínaje zadaným indexřetězcem .

(Zděděno od Encoding)
GetBytes(String)

Při přepsání v odvozené třídě zakóduje všechny znaky v zadaném řetězci do posloupnosti bajtů.

(Zděděno od Encoding)
GetCharCount(Byte[], Int32, Int32)

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného bajtového pole.

GetCharCount(Byte[])

Při přepsání v odvozené třídě vypočítá počet znaků vytvořený dekódováním všech bajtů v zadané bajtové matici.

(Zděděno od Encoding)
GetCharCount(Byte*, Int32)

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů počínaje zadaným ukazatelem bajtu.

GetCharCount(ReadOnlySpan<Byte>)

Vypočítá počet znaků vytvořených dekódováním zadaného rozsahu bajtů.

GetCharCount(ReadOnlySpan<Byte>)

Při přepsání v odvozené třídě vypočítá počet znaků vytvořených dekódováním poskytnutého bajtu jen pro čtení.

(Zděděno od Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Dekóduje posloupnost bajtů ze zadaného bajtového pole do zadaného znakového pole.

GetChars(Byte[], Int32, Int32)

Při přepsání v odvozené třídě dekóduje posloupnost bajtů ze zadaného bajtového pole do sady znaků.

(Zděděno od Encoding)
GetChars(Byte[])

Při přepsání v odvozené třídě dekóduje všechny bajty v zadané bajtové matici do sady znaků.

(Zděděno od Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Dekóduje posloupnost bajtů počínaje zadaným bajtovým ukazatelem na sadu znaků, které jsou uloženy od zadaného ukazatele znaků.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

Dekóduje zadané bajtové rozpětí do zadaného rozsahu znaků.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

Při přepsání v odvozené třídě dekóduje všechny bajty v zadaném bajtu jen pro čtení do rozsahu znaků.

(Zděděno od Encoding)
GetDecoder()

Získá dekodér, který převede posloupnost ASCII kódované bajtů na posloupnost znaků Unicode.

GetDecoder()

Při přepsání v odvozené třídě získá dekodér, který převede zakódovanou sekvenci bajtů na posloupnost znaků.

(Zděděno od Encoding)
GetEncoder()

Získá kodér, který převede posloupnost znaků Unicode na posloupnost kódování ASCII bajtů.

GetEncoder()

Při přepsání v odvozené třídě získá kodér, který převede posloupnost znaků Unicode na zakódovanou sekvenci bajtů.

(Zděděno od Encoding)
GetHashCode()

Vrátí kód hash pro aktuální instanci.

(Zděděno od Encoding)
GetMaxByteCount(Int32)

Vypočítá maximální počet bajtů vytvořených kódováním zadaného počtu znaků.

GetMaxCharCount(Int32)

Vypočítá maximální počet znaků vytvořených dekódováním zadaného počtu bajtů.

GetPreamble()

Při přepsání v odvozené třídě vrátí posloupnost bajtů, která určuje použité kódování.

(Zděděno od Encoding)
GetString(Byte[], Int32, Int32)

Dekóduje rozsah bajtů z bajtového pole do řetězce.

GetString(Byte[])

Představuje kódování znaků ASCII znaků Unicode.

GetString(Byte[])

Při přepsání v odvozené třídě dekóduje všechny bajty v zadané bajtové pole do řetězce.

(Zděděno od Encoding)
GetString(Byte*, Int32)

Při přepsání v odvozené třídě dekóduje zadaný počet bajtů počínaje zadanou adresou do řetězce.

(Zděděno od Encoding)
GetString(ReadOnlySpan<Byte>)

Při přepsání v odvozené třídě dekóduje všechny bajty v zadaném bajtu rozsahu do řetězce.

(Zděděno od Encoding)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IsAlwaysNormalized()

Získá hodnotu označující, zda je aktuální kódování vždy normalizováno pomocí výchozího normalizačního formuláře.

(Zděděno od Encoding)
IsAlwaysNormalized(NormalizationForm)

Při přepsání v odvozené třídě získá hodnotu určující, zda je aktuální kódování vždy normalizováno pomocí zadaného normalizačního formuláře.

(Zděděno od Encoding)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Zakóduje do rozsahu bajtů sadu znaků ze zadaného rozsahu jen pro čtení, pokud je cíl dostatečně velký.

TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Dekóduje do rozsahu znaků sadu bajtů ze zadaného rozsahu jen pro čtení, pokud je cíl dostatečně velký.

Metody rozšíření

Name Description
GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

Dekóduje zadané ReadOnlySequence<T> na bytes pomocí zadaného Encoding a zapíše výsledek na writer.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

Zakóduje zadané ReadOnlySequence<T> do bytes pomocí zadaného Encoding a výstupu výsledek do bytes.

GetBytes(Encoding, ReadOnlySequence<Char>)

Zakóduje zadaný ReadOnlySequence<T> do Byte pole pomocí zadaného Encodingpole .

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

Zakóduje zadanou ReadOnlySpan<T> hodnotu tak, aby bytepoužívala zadanou Encoding hodnotu, a zapíše výsledek do writer.

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

Dekóduje zadané ReadOnlySequence<T> na chars pomocí zadaného Encoding a zapíše výsledek na writer.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

Dekóduje zadané ReadOnlySequence<T> na chars pomocí zadaného Encoding a výstupu výsledek na chars.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

Dekóduje zadané ReadOnlySpan<T> na chars pomocí zadaného Encoding a zapíše výsledek na writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Dekóduje zadaný ReadOnlySequence<T> do zadaného StringEncoding.

Platí pro

Viz také