ASCIIEncoding Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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ý |
| 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ý. |