UTF7Encoding.GetBytes Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Codeert een reeks tekens in een reeks bytes.
Overloads
| Name | Description |
|---|---|
| GetBytes(Char*, Int32, Byte*, Int32) |
Codeert een reeks tekens die beginnen bij de opgegeven tekenwijzer in een reeks bytes die zijn opgeslagen vanaf de opgegeven byte-aanwijzer. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Codeert een set tekens van de opgegeven tekenmatrix in de opgegeven bytematrix. |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Codeert een set tekens van de opgegeven in de opgegeven String bytematrix. |
GetBytes(Char*, Int32, Byte*, Int32)
Belangrijk
Deze API is niet CLS-conform.
Codeert een reeks tekens die beginnen bij de opgegeven tekenwijzer in een reeks bytes die zijn opgeslagen vanaf de opgegeven byte-aanwijzer.
public:
override int GetBytes(char* chars, int charCount, System::Byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
public override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
Parameters
- chars
- Char*
Een aanwijzer naar het eerste teken om te coderen.
- charCount
- Int32
Het aantal tekens dat moet worden gecodeerd.
- bytes
- Byte*
Een aanwijzer naar de locatie waar de resulterende reeks bytes moet worden geschreven.
- byteCount
- Int32
Het maximum aantal bytes dat moet worden geschreven.
Retouren
Het werkelijke aantal bytes dat is geschreven op de locatie aangegeven door bytes.
- Kenmerken
Uitzonderingen
charCount of byteCount kleiner is dan nul.
byteCount is kleiner dan het resulterende aantal bytes.
Er is een terugval opgetreden (zie Character Encoding in .NET voor een volledigere uitleg).
en
EncoderFallback is ingesteld op EncoderExceptionFallback.
Opmerkingen
Voor het berekenen van de exacte matrixgrootte die is vereist voor GetBytes het opslaan van de resulterende bytes, gebruikt GetByteCountde toepassing . Als u de maximale matrixgrootte wilt berekenen, moet de toepassing gebruikmaken van GetMaxByteCount. Met de GetByteCount methode kan over het algemeen minder geheugen worden toegewezen, terwijl de GetMaxByteCount methode doorgaans sneller wordt uitgevoerd.
Gegevens die moeten worden geconverteerd, zoals gegevens die uit een stroom worden gelezen, zijn mogelijk alleen in opeenvolgende blokken beschikbaar. In dit geval, of als de hoeveelheid gegevens zo groot is dat deze moet worden onderverdeeld in kleinere blokken, moet de toepassing respectievelijk de Decoder door de GetDecoder methode of de methode opgegeven methode Encoder of de GetEncoder methode gebruiken.
Note
UTF7Encoding biedt geen foutdetectie. Ongeldige tekens worden gecodeerd als een gewijzigd base 64-teken. Om veiligheidsredenen worden uw toepassingen aanbevolen om foutdetectie te gebruiken UTF8Encoding, UnicodeEncodingof UTF32Encoding in te schakelen.
Zie ook
Van toepassing op
GetBytes(Char[], Int32, Int32, Byte[], Int32)
Codeert een set tekens van de opgegeven tekenmatrix in de opgegeven bytematrix.
public:
override int GetBytes(cli::array <char> ^ chars, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : char[] * int * int * byte[] * int -> int
Public Overrides Function GetBytes (chars As Char(), charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer
Parameters
- chars
- Char[]
De tekenmatrix die de set tekens bevat die moeten worden gecodeerd.
- charIndex
- Int32
De index van het eerste teken om te coderen.
- charCount
- Int32
Het aantal tekens dat moet worden gecodeerd.
- bytes
- Byte[]
De bytematrix die de resulterende reeks bytes bevat.
- byteIndex
- Int32
De index waarop de resulterende reeks bytes moet worden geschreven.
Retouren
Het werkelijke aantal bytes dat is geschreven in bytes.
Uitzonderingen
charIndex of charCountbyteIndex kleiner is dan nul.
– of –
charIndex en charCount geef geen geldig bereik aan in chars.
– of –
byteIndex is geen geldige index in bytes.
bytes heeft niet voldoende capaciteit van byteIndex tot het einde van de matrix voor de resulterende bytes.
Er is een terugval opgetreden (zie Character Encoding in .NET voor een volledigere uitleg).
en
EncoderFallback is ingesteld op EncoderExceptionFallback.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de GetBytes methode gebruikt om een reeks tekens te coderen van een String en de gecodeerde bytes op te slaan in een bereik van elementen in een bytematrix.
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
Byte[] bytes;
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
UTF7Encoding utf7 = new UTF7Encoding();
int byteCount = utf7.GetByteCount(chars, 1, 2);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf7.GetBytes(chars, 1, 2, bytes, 0);
Console.WriteLine(
"{0} bytes used to encode characters.", bytesEncodedCount
);
Console.Write("Encoded bytes: ");
foreach (Byte b in bytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
}
}
Imports System.Text
Imports Microsoft.VisualBasic.strings
Class UTF7EncodingExample
Public Shared Sub Main()
Dim bytes() As Byte
' Unicode characters.
' ChrW(35) = #
' ChrW(37) = %
' ChrW(928) = Pi
' ChrW(931) = Sigma
Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
Dim utf7 As New UTF7Encoding()
Dim byteCount As Integer = utf7.GetByteCount(chars, 1, 2)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf7.GetBytes(chars, 1, 2, bytes, 0)
Console.WriteLine("{0} bytes used to encode characters.", bytesEncodedCount)
Console.Write("Encoded bytes: ")
Dim b As Byte
For Each b In bytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
End Sub
End Class
Opmerkingen
Voor het berekenen van de exacte matrixgrootte die is vereist voor GetBytes het opslaan van de resulterende bytes, gebruikt GetByteCountde toepassing . Als u de maximale matrixgrootte wilt berekenen, moet de toepassing gebruikmaken van GetMaxByteCount. Met de GetByteCount methode kan over het algemeen minder geheugen worden toegewezen, terwijl de GetMaxByteCount methode doorgaans sneller wordt uitgevoerd.
Gegevens die moeten worden geconverteerd, zoals gegevens die uit een stroom worden gelezen, zijn mogelijk alleen in opeenvolgende blokken beschikbaar. In dit geval, of als de hoeveelheid gegevens zo groot is dat deze moet worden onderverdeeld in kleinere blokken, moet de toepassing respectievelijk de Decoder door de GetDecoder methode of de methode opgegeven methode Encoder of de GetEncoder methode gebruiken.
Note
UTF7Encoding biedt geen foutdetectie. Ongeldige tekens worden gecodeerd als een gewijzigd base 64-teken. Om veiligheidsredenen worden uw toepassingen aanbevolen om foutdetectie te gebruiken UTF8Encoding, UnicodeEncodingof UTF32Encoding in te schakelen.
Zie ook
Van toepassing op
GetBytes(String, Int32, Int32, Byte[], Int32)
Codeert een set tekens van de opgegeven in de opgegeven String bytematrix.
public:
override int GetBytes(System::String ^ s, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex);
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetBytes : string * int * int * byte[] * int -> int
Public Overrides Function GetBytes (s As String, charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer
Parameters
- charIndex
- Int32
De index van het eerste teken om te coderen.
- charCount
- Int32
Het aantal tekens dat moet worden gecodeerd.
- bytes
- Byte[]
De bytematrix die de resulterende reeks bytes bevat.
- byteIndex
- Int32
De index waarop de resulterende reeks bytes moet worden geschreven.
Retouren
Het werkelijke aantal bytes dat is geschreven in bytes.
- Kenmerken
Uitzonderingen
charIndex of charCountbyteIndex kleiner is dan nul.
– of –
charIndex en charCount geef geen geldig bereik aan in s.
– of –
byteIndex is geen geldige index in bytes.
bytes heeft niet voldoende capaciteit van byteIndex tot het einde van de matrix voor de resulterende bytes.
Er is een terugval opgetreden (zie Character Encoding in .NET voor een volledigere uitleg).
en
EncoderFallback is ingesteld op EncoderExceptionFallback.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de GetBytes methode gebruikt om een bereik van elementen van een Unicode-tekenmatrix te coderen en de gecodeerde bytes op te slaan in een bereik van elementen in een bytematrix.
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
Byte[] bytes;
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
UTF7Encoding utf7 = new UTF7Encoding();
int byteCount = utf7.GetByteCount(chars, 1, 2);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf7.GetBytes(chars, 1, 2, bytes, 0);
Console.WriteLine(
"{0} bytes used to encode characters.", bytesEncodedCount
);
Console.Write("Encoded bytes: ");
foreach (Byte b in bytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
}
}
Imports System.Text
Imports Microsoft.VisualBasic.strings
Class UTF7EncodingExample
Public Shared Sub Main()
Dim bytes() As Byte
' Unicode characters.
' ChrW(35) = #
' ChrW(37) = %
' ChrW(928) = Pi
' ChrW(931) = Sigma
Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
Dim utf7 As New UTF7Encoding()
Dim byteCount As Integer = utf7.GetByteCount(chars, 1, 2)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf7.GetBytes(chars, 1, 2, bytes, 0)
Console.WriteLine("{0} bytes used to encode characters.", bytesEncodedCount)
Console.Write("Encoded bytes: ")
Dim b As Byte
For Each b In bytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
End Sub
End Class
Opmerkingen
Voor het berekenen van de exacte matrixgrootte die is vereist voor GetBytes het opslaan van de resulterende bytes, gebruikt GetByteCountde toepassing . Als u de maximale matrixgrootte wilt berekenen, moet de toepassing gebruikmaken van GetMaxByteCount. Met de GetByteCount methode kan over het algemeen minder geheugen worden toegewezen, terwijl de GetMaxByteCount methode doorgaans sneller wordt uitgevoerd.
Gegevens die moeten worden geconverteerd, zoals gegevens die uit een stroom worden gelezen, zijn mogelijk alleen in opeenvolgende blokken beschikbaar. In dit geval, of als de hoeveelheid gegevens zo groot is dat deze moet worden onderverdeeld in kleinere blokken, moet de toepassing respectievelijk de Decoder door de GetDecoder methode of de methode opgegeven methode Encoder of de GetEncoder methode gebruiken.
Note
UTF7Encoding biedt geen foutdetectie. Ongeldige tekens worden gecodeerd als een gewijzigd base 64-teken. Om veiligheidsredenen worden uw toepassingen aanbevolen om foutdetectie te gebruiken UTF8Encoding, UnicodeEncodingof UTF32Encoding in te schakelen.