UTF7Encoding.GetString(Byte[], Int32, Int32) 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í.
Dekóduje rozsah bajtů z bajtového pole do řetězce.
public:
override System::String ^ GetString(cli::array <System::Byte> ^ bytes, int index, int count);
public override string GetString(byte[] bytes, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override string GetString(byte[] bytes, int index, int count);
override this.GetString : byte[] * int * int -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetString : byte[] * int * int -> string
Public Overrides Function GetString (bytes As Byte(), index As Integer, count As Integer) As String
Parametry
- bytes
- Byte[]
Bajtové pole obsahující posloupnost bajtů k dekódování.
- index
- Int32
Index prvního bajtu pro dekódování.
- count
- Int32
Počet bajtů, které se mají dekódovat.
Návraty
A String obsahující výsledky dekódování zadané sekvence bajtů.
- Atributy
Výjimky
bytes je null (Nothing).
index nebo count je menší než nula.
nebo
index a count neoznamujte platný rozsah v bytes.
Došlo k záložnímu kódu (další informace najdete v tématu KódováníCharacter v .NET).
a
DecoderFallback je nastaveno na DecoderExceptionFallback.
Příklady
Následující příklad kódu kóduje řetězec do pole bajtů a potom dekóduje bajty zpět do řetězce.
using System;
using System.Text;
public class SamplesUTF7Encoding {
public static void Main() {
// Create an instance of UTF7Encoding.
UTF7Encoding u7 = new UTF7Encoding( true );
// Create byte arrays from the same string containing the following characters:
// Latin Small Letter Z (U+007A)
// Latin Small Letter A (U+0061)
// Combining Breve (U+0306)
// Latin Small Letter AE With Acute (U+01FD)
// Greek Small Letter Beta (U+03B2)
String myStr = "za\u0306\u01FD\u03B2";
// Encode the string.
byte[] myBArr = new byte[u7.GetByteCount( myStr )];
u7.GetBytes( myStr, 0, myStr.Length, myBArr, 0 );
// Decode the byte array.
Console.WriteLine( "The new string is: {0}", u7.GetString( myBArr, 0, myBArr.Length ) );
}
}
/*
This code produces the following output. The question marks take the place of characters that cannot be displayed at the console.
The new string is: za??
*/
Imports System.Text
Public Class SamplesUTF7Encoding
Public Shared Sub Main()
' Create an instance of UTF7Encoding.
Dim u7 As New UTF7Encoding(True)
' Create byte arrays from the same string containing the following characters:
' Latin Small Letter Z (U+007A)
' Latin Small Letter A (U+0061)
' Combining Breve (U+0306)
' Latin Small Letter AE With Acute (U+01FD)
' Greek Small Letter Beta (U+03B2)
Dim myStr As String = "za" & ChrW(&H0306) & ChrW(&H01FD) & ChrW(&H03B2)
' Encode the string.
Dim myBArr(u7.GetByteCount(myStr)) As Byte
u7.GetBytes(myStr, 0, myStr.Length, myBArr, 0)
' Decode the byte array.
Console.WriteLine("The new string is: {0}", u7.GetString(myBArr, 0, myBArr.Length))
End Sub
End Class
'This code produces the following output. The question marks take the place of characters that cannot be displayed at the console.
'
'The new string is: za??ß
Poznámky
Data, která se mají převést, například čtení dat ze streamu, můžou být k dispozici pouze v sekvenčních blocích. V tomto 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 Decoder metodu Encoder nebo GetDecoder metodu nebo metoduGetEncoder.
Note
UTF7Encoding neposkytuje detekci chyb. Pokud jsou zjištěny neplatné bajty, UTF7Encoding obecně generuje neplatné bajty. Pokud je bajt větší než šestnáctková 0x7F, je bajtová hodnota nulou rozšířená na znak Unicode, výsledek se uloží do chars pole a ukončí se jakákoli posloupnost posunu. Pokud je například bajt pro kódování šestnáctkový 0x81, výsledný znak je U+0081. Zbezpečnostních UTF8EncodingUnicodeEncodingUTF32Encoding