ASCIIEncoding.GetString Metoda
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řetížení
GetString(Byte[]) | |
GetString(Byte[], Int32, Int32) |
Dekóduje rozsah bajtů z pole bajtů do řetězce. |
GetString(Byte[])
GetString(Byte[], Int32, Int32)
- Zdroj:
- ASCIIEncoding.cs
- Zdroj:
- ASCIIEncoding.cs
- Zdroj:
- ASCIIEncoding.cs
Dekóduje rozsah bajtů z pole bajtů do řetězce.
public:
override System::String ^ GetString(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount);
public override string GetString (byte[] bytes, int byteIndex, int byteCount);
override this.GetString : byte[] * int * int -> string
Public Overrides Function GetString (bytes As Byte(), byteIndex As Integer, byteCount As Integer) As String
Parametry
- bytes
- Byte[]
Pole bajtů obsahující posloupnost bajtů k dekódování.
- byteIndex
- Int32
Index prvního bajtu k dekódování.
- byteCount
- Int32
Počet bajtů k dekódování.
Návraty
Obsahující String výsledky dekódování zadané posloupnosti bajtů.
Výjimky
bytes
je null
.
index
nebo count
je menší než nula.
-nebo-
index
a count
neoznamují platnou oblast v bytes
souboru .
Došlo k náhradnímu použití (další informace najdete v tématu Kódování znaků v .NET)
-A-
DecoderFallback je nastavená na DecoderExceptionFallbackhodnotu .
Příklady
Následující příklad ukazuje použití GetString metody k převodu pole bajtů na String.
using namespace System;
using namespace System::Text;
int main()
{
// Define a string.
String^ original = "ASCII Encoding Example";
// Instantiate an ASCII encoding object.
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
// Create an ASCII byte array.
array<Byte>^ bytes = ascii->GetBytes(original);
// Display encoded bytes.
Console::Write("Encoded bytes (in hex): ");
for each (Byte value in bytes)
Console::Write("{0:X2} ", value);
Console::WriteLine();
// Decode the bytes and display the resulting Unicode string.
String^ decoded = ascii->GetString(bytes);
Console::WriteLine("Decoded string: '{0}'", decoded);
}
// The example displays the following output:
// Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
// Decoded string: 'ASCII Encoding Example'
using System;
using System.Text;
class Example
{
public static void Main()
{
// Define a string.
String original = "ASCII Encoding Example";
// Instantiate an ASCII encoding object.
ASCIIEncoding ascii = new ASCIIEncoding();
// Create an ASCII byte array.
Byte[] bytes = ascii.GetBytes(original);
// Display encoded bytes.
Console.Write("Encoded bytes (in hex): ");
foreach (var value in bytes)
Console.Write("{0:X2} ", value);
Console.WriteLine();
// Decode the bytes and display the resulting Unicode string.
String decoded = ascii.GetString(bytes);
Console.WriteLine("Decoded string: '{0}'", decoded);
}
}
// The example displays the following output:
// Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
// Decoded string: 'ASCII Encoding Example'
Imports System.Text
Module Example
Public Sub Main()
' Define a string.
Dim original As String = "ASCII Encoding Example"
' Instantiate an ASCII encoding object.
Dim ascii As New ASCIIEncoding()
' Create an ASCII byte array.
Dim bytes() As Byte = ascii.GetBytes(original)
' Display encoded bytes.
Console.Write("Encoded bytes (in hex): ")
For Each value In bytes
Console.Write("{0:X2} ", value)
Next
Console.WriteLine()
' Decode the bytes and display the resulting Unicode string.
Dim decoded As String = ascii.GetString(bytes)
Console.WriteLine("Decoded string: '{0}'", decoded)
End Sub
End Module
' The example displays the following output:
' Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
' Decoded string: 'ASCII Encoding Example'
Poznámky
Data, která se mají převést, například data načtená z datového proudu, mohou být k dispozici pouze v sekvenčních blocích. V takovém případě nebo pokud je množství dat tak velké, že je potřeba je rozdělit na menší bloky, měla by aplikace použít metodu Decoder nebo Encoder metodu, která je poskytována GetDecoder metodou GetEncoder v uvedeném pořadí.
ASCIIEncoding neposkytuje detekci chyb. Jakýkoli bajt větší než hexadecimální 0x7F je dekódován jako otazník Unicode ("?").
Upozornění
Z bezpečnostních důvodů byste měli místo třídy použít UTF8Encodingtřídy , UnicodeEncodingnebo UTF32Encoding a povolit detekci ASCIIEncoding chyb.
Viz také
- GetChars(Byte[], Int32, Int32, Char[], Int32)
- GetDecoder()
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)