ASCIIEncoding 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.
Unicode-karakterek ASCII-karakterkódolását jelöli.
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
- Öröklődés
- Attribútumok
Példák
Az alábbi példa bemutatja, hogyan kódolhat Unicode-karaktereket ASCII-be. Figyelje meg az adatvesztést, amely akkor fordul elő, amikor az alkalmazás Unicode-karaktereket kódol ASCIIEncoding az ASCII-tartományon kívül.
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 (?).
Megjegyzések
A kódolás a Unicode-karakterek halmazának bájtok sorozatává alakításának folyamata. A dekódolás a kódolt bájtok sorozatának Unicode-karakterekből álló készletté alakításának folyamata.
ASCIIEncoding a 20127-Windows kódlapnak felel meg. Mivel az ASCII egy 7 bites kódolás, az ASCII-karakterek a legalacsonyabb 128 Unicode karakterre korlátozódnak, U+0000 és U+007F között. Ha a tulajdonság vagy a Encoding.ASCII konstruktor által visszaadott alapértelmezett kódolót használja, a ASCIIEncoding tartományon kívüli karaktereket kérdőjel (?) váltja fel a kódolási művelet végrehajtása előtt. Mivel az ASCIIEncoding osztály csak korlátozott karakterkészletet támogat, a UTF8Encoding, UnicodeEncodingés UTF32Encoding az osztályok jobban megfelelnek a globalizált alkalmazásoknak. A következő szempontok segíthetnek eldönteni, hogy használja-e a következőt ASCIIEncoding:
Egyes protokollokhoz ASCII vagy ASCII-részhalmaz szükséges. Ezekben az esetekben az ASCII kódolás megfelelő.
Ha 8 bites kódolásra van szükség, akkor az ASCII valószínűleg nem a megfelelő választás. Ehelyett fontolja meg az UTF8 használatát ASCII helyett. Az U+0000 és U+007F karakterek esetében az eredmények azonosak, de az összes Unicode-karakter az UTF-8-ban ábrázolható, így elkerülhető az adatvesztés.
Figyelmeztetés
ASCIIEncoding nem biztosít hibaészlelést. Biztonsági okokból érdemes használni UTF8Encoding, UnicodeEncodingvagy UTF32Encoding engedélyezni a hibaészlelést.
A GetByteCount metódus meghatározza, hogy hány bájtot eredményez egy Unicode-karakterkészlet kódolása, és a GetBytes metódus végrehajtja a tényleges kódolást.
Hasonlóképpen, a GetCharCount metódus meghatározza, hogy hány karakter okozza a bájtok sorozatának dekódolását, és a GetCharsGetString metódusok elvégzik a tényleges dekódolást.
Vegye figyelembe, hogy előfordulhat, hogy az alapértelmezett ASCIIEncoding konstruktor önmagában nem felel meg az alkalmazás megfelelő viselkedésének. Érdemes lehet a sorozatok 8. bitkészlettel való beállítását EncoderFallback vagy DecoderFallbackEncoderExceptionFallbackDecoderExceptionFallback megelőzését is megfontolni. Ezekben az esetekben az egyéni viselkedés is megfelelő lehet.
Konstruktorok
| Name | Description |
|---|---|
| ASCIIEncoding() |
Inicializálja a ASCIIEncoding osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| 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ó. (Öröklődés forrása Encoding) |
| CodePage |
Ha felül van bírálva egy származtatott osztályban, lekéri az aktuális Encodingkódlap azonosítóját. (Öröklődés forrása Encoding) |
| DecoderFallback |
Lekéri vagy beállítja az DecoderFallback aktuális Encoding objektum objektumát. (Öröklődés forrása Encoding) |
| EncoderFallback |
Lekéri vagy beállítja az EncoderFallback aktuális Encoding objektum objektumát. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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ó. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| IsSingleByte |
Beolvas egy értéket, amely jelzi, hogy az aktuális kódolás egy bájtos kódpontokat használ-e. |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
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. (Öröklődés forrása Encoding) |
| Equals(Object) |
Meghatározza, hogy a megadott Object érték megegyezik-e az aktuális példánnyal. (Öröklődés forrása Encoding) |
| GetByteCount(Char[], Int32, Int32) |
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. (Öröklődés forrása Encoding) |
| GetByteCount(Char*, Int32) |
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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| GetByteCount(String) |
Kiszámítja a megadott Stringkarakterek kódolásával előállított bájtok számát. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Egy karakterkészletet kódol a megadott karaktertömbből a megadott bájttömbbe. |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| GetBytes(Char*, Int32, Byte*, Int32) |
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. (Öröklődés forrása Encoding) |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
A megadott String bájttömbbe kódol egy karakterkészletet. |
| 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. (Öröklődés forrása Encoding) |
| GetCharCount(Byte[], Int32, Int32) |
A megadott bájttömbből származó bájtsorozat dekódolásával előállított karakterek számát számítja ki. |
| 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. (Öröklődés forrása Encoding) |
| GetCharCount(Byte*, Int32) |
A megadott bájtmutatótól kezdődő bájtsor dekódolásával előállított karakterek számát számítja ki. |
| 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. (Öröklődés forrása Encoding) |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Bájtok sorozatát dekódolja a megadott bájttömbből a megadott karaktertömbbe. |
| 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. (Öröklődés forrása Encoding) |
| GetChars(Byte[]) |
Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját karakterkészletté alakítja. (Öröklődés forrása Encoding) |
| GetChars(Byte*, Int32, Char*, Int32) |
A megadott bájtmutatótól kezdve a bájtok sorozatát a megadott karaktermutatótól kezdődően tárolt karakterkészletté 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. (Öröklődés forrása Encoding) |
| GetDecoder() |
Lekér egy dekódolót, amely bájtok ASCII-kódolású sorozatát Unicode-karakterek sorozatá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. (Öröklődés forrása Encoding) |
| GetEncoder() |
Beolvas egy kódolót, amely Unicode-karakterek sorozatát ASCII kódolású bájtok sorozatává 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. (Öröklődés forrása Encoding) |
| GetHashCode() |
Az aktuális példány kivonatkódját adja vissza. (Öröklődés forrása Encoding) |
| GetMaxByteCount(Int32) |
Kiszámítja a megadott számú karakter kódolásával előállított bájtok maximális számát. |
| GetMaxCharCount(Int32) |
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. (Öröklődés forrása Encoding) |
| GetString(Byte[], Int32, Int32) |
Bájttartományt kódol egy bájttömbből egy sztringbe. |
| GetString(Byte[]) |
Unicode-karakterek ASCII-karakterkódolását jelöli. |
| GetString(Byte[]) |
Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját sztringgé alakítja. (Öröklődés forrása Encoding) |
| 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é. (Öröklődés forrása Encoding) |
| GetString(ReadOnlySpan<Byte>) |
Származtatott osztályban felülbírálva a megadott bájttartomány összes bájtját sztringgé alakítja. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| 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. (Öröklődés forrása Encoding) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |