ASCIIEncoding.GetChars Metódus
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.
Bájtok sorozatát kódolja karakterkészletté.
Túlterhelések
| Name | Description |
|---|---|
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
A megadott bájttartományt a megadott karaktertartományba kódolja. |
| 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(Byte[], Int32, Int32, Char[], Int32) |
Bájtok sorozatát dekódolja a megadott bájttömbből a megadott karaktertömbbe. |
GetChars(ReadOnlySpan<Byte>, Span<Char>)
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
A megadott bájttartományt a megadott karaktertartományba kódolja.
public:
override int GetChars(ReadOnlySpan<System::Byte> bytes, Span<char> chars);
public override int GetChars(ReadOnlySpan<byte> bytes, Span<char> chars);
override this.GetChars : ReadOnlySpan<byte> * Span<char> -> int
Public Overrides Function GetChars (bytes As ReadOnlySpan(Of Byte), chars As Span(Of Char)) As Integer
Paraméterek
- bytes
- ReadOnlySpan<Byte>
A dekódolni kívánt bájtokat tartalmazó span.
Válaszok
A beírt charskarakterek tényleges száma.
Megjegyzések
Az eredményként kapott karakterek tárolásához szükséges GetChars pontos méret kiszámításához használja GetCharCounta következőt: . A maximális méret kiszámításához használja GetMaxCharCounta következőt: . A GetCharCount metódus általában kevesebb memória lefoglalását teszi lehetővé, míg a GetMaxCharCount metódus általában gyorsabban fut.
Az átalakítandó adatok, például a streamből beolvasott adatok csak szekvenciális blokkokban érhetők el. Ebben az esetben, vagy ha az adatok mennyisége olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder metódus vagy Encoder a GetEncoder metódus által GetDecoder megadott vagy megadott értéket kell használnia.
ASCIIEncoding nem biztosít hibaészlelést. A hexadecimálisnál 0x7F nagyobb bájtok Unicode kérdőjelként vannak dekódolva ("?").
Figyelmeztetés
Biztonsági okokból érdemes használni UTF8Encoding, UnicodeEncodingvagy UTF32Encoding engedélyezni a hibaészlelést.
A következőre érvényes:
GetChars(Byte*, Int32, Char*, Int32)
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
Fontos
Ez az API nem CLS-kompatibilis.
- CLS-kompatibilis alternatíva
- System.Text.ASCIIEncoding.GetChars(Byte[], Int32, 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.
public:
override int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetChars(byte* bytes, int byteCount, char* chars, int charCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int -> int
Paraméterek
- bytes
- Byte*
A dekódolni kívánt első bájtra mutató mutató.
- byteCount
- Int32
A dekódolni kívánt bájtok száma.
- chars
- Char*
Az eredményként kapott karakterkészlet írásának megkezdéséhez mutató mutató.
- charCount
- Int32
Az írandó karakterek maximális száma.
Válaszok
A megadott helyen charsírt karakterek tényleges száma.
- Attribútumok
Kivételek
byteCount vagy charCount kisebb, mint nulla.
charCount kisebb, mint az eredményként kapott karakterek száma.
Hiba történt (további információ:
-és-
DecoderFallback DecoderExceptionFallbackértékre van állítva.
Megjegyzések
Az eredményként kapott karakterek tárolásához szükséges GetChars pontos tömbméret kiszámításához az alkalmazás a következőt használja GetCharCount: . A maximális tömbméret kiszámításához az alkalmazásnak a következőt kell használnia GetMaxCharCount: . A GetCharCount metódus általában kevesebb memória lefoglalását teszi lehetővé, míg a GetMaxCharCount metódus általában gyorsabban fut.
Az átalakítandó adatok, például a streamből beolvasott adatok csak szekvenciális blokkokban érhetők el. Ebben az esetben, vagy ha az adatok mennyisége olyan nagy, hogy kisebb blokkokra kell osztani, az alkalmazásnak a Decoder metódus vagy Encoder a GetDecoder metódus által GetEncoder megadott vagy megadott adatokat kell használnia.
ASCIIEncoding nem biztosít hibaészlelést. A hexadecimális 0x7F nagyobb bájtok Unicode kérdőjelként vannak dekódolva ("?").
Figyelmeztetés
Biztonsági okokból javasoljuk, hogy az alkalmazást használja UTF8Encoding, UnicodeEncodingvagy UTF32Encoding engedélyezze a hibaészlelést.
Lásd még
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)
- GetDecoder()
- GetString(Byte[], Int32, Int32)
A következőre érvényes:
GetChars(Byte[], Int32, Int32, Char[], Int32)
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
- Forrás:
- ASCIIEncoding.cs
Bájtok sorozatát dekódolja a megadott bájttömbből a megadott karaktertömbbe.
public:
override int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
override this.GetChars : byte[] * int * int * char[] * int -> int
Public Overrides Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer) As Integer
Paraméterek
- bytes
- Byte[]
A dekódolni kívánt bájtok sorozatát tartalmazó bájttömb.
- byteIndex
- Int32
A dekódolni kívánt első bájt indexe.
- byteCount
- Int32
A dekódolni kívánt bájtok száma.
- chars
- Char[]
Az eredményként kapott karakterkészletet tartalmazó karaktertömb.
- charIndex
- Int32
Az index, amelynél elkezdi írni az eredményként kapott karakterkészletet.
Válaszok
A beírt charskarakterek tényleges száma.
Kivételek
byteIndex vagy byteCountcharIndex kisebb, mint nulla.
-vagy-
byteIndex és byteCount ne jelölje az érvényes tartományt a következőben bytes: .
-vagy-
charIndex érvénytelen index a következőben chars: .
chars nem rendelkezik elegendő kapacitással a tömb végétől charIndex a kapott karakterek elhelyezéséhez.
Hiba történt (további információ:
-és-
DecoderFallback DecoderExceptionFallbackértékre van állítva.
Példák
Az alábbi példa bemutatja, hogyan dekódolhat egy bájttömb elemeinek tartományát, és hogyan tárolhatja az eredményt egy Unicode-karaktertömbben lévő elemek készletében.
using System;
using System.Text;
class ASCIIEncodingExample {
public static void Main() {
Char[] chars;
Byte[] bytes = new Byte[] {
65, 83, 67, 73, 73, 32, 69,
110, 99, 111, 100, 105, 110, 103,
32, 69, 120, 97, 109, 112, 108, 101
};
ASCIIEncoding ascii = new ASCIIEncoding();
int charCount = ascii.GetCharCount(bytes, 6, 8);
chars = new Char[charCount];
int charsDecodedCount = ascii.GetChars(bytes, 6, 8, chars, 0);
Console.WriteLine(
"{0} characters used to decode bytes.", charsDecodedCount
);
Console.Write("Decoded chars: ");
foreach (Char c in chars) {
Console.Write("[{0}]", c);
}
Console.WriteLine();
}
}
Imports System.Text
Class ASCIIEncodingExample
Public Shared Sub Main()
Dim chars() As Char
Dim bytes() As Byte = { _
65, 83, 67, 73, 73, 32, 69, _
110, 99, 111, 100, 105, 110, 103, _
32, 69, 120, 97, 109, 112, 108, 101}
Dim ascii As New ASCIIEncoding()
Dim charCount As Integer = ascii.GetCharCount(bytes, 6, 8)
chars = New Char(charCount - 1) {}
Dim charsDecodedCount As Integer = ascii.GetChars(bytes, 6, 8, chars, 0)
Console.WriteLine("{0} characters used to decode bytes.", charsDecodedCount)
Console.Write("Decoded chars: ")
Dim c As Char
For Each c In chars
Console.Write("[{0}]", c)
Next c
Console.WriteLine()
End Sub
End Class
Megjegyzések
Az eredményként kapott karakterek tárolásához szükséges GetChars pontos tömbméret kiszámításához az alkalmazás a következőt használja GetCharCount: . A maximális tömbméret kiszámításához az alkalmazásnak a következőt kell használnia GetMaxCharCount: . A GetCharCount metódus általában kevesebb memória lefoglalását teszi lehetővé, míg a GetMaxCharCount metódus általában gyorsabban fut.
Az átalakítandó adatok, például a streamből beolvasott adatok csak szekvenciális blokkokban érhetők el. Ebben az esetben, vagy ha az adatok mennyisége olyan nagy, hogy kisebb blokkokra kell osztani, az alkalmazásnak a Decoder metódus vagy Encoder a GetDecoder metódus által GetEncoder megadott vagy megadott adatokat kell használnia.
ASCIIEncoding nem biztosít hibaészlelést. A hexadecimális 0x7F nagyobb bájtok Unicode kérdőjelként vannak dekódolva ("?").
Figyelmeztetés
Biztonsági okokból javasoljuk, hogy az alkalmazást használja UTF8Encoding, UnicodeEncodingvagy UTF32Encoding engedélyezze a hibaészlelést.
Lásd még
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)
- GetDecoder()
- GetString(Byte[], Int32, Int32)