UTF8Encoding.GetBytes Metod

Definition

Kodar en uppsättning tecken i en sekvens med byte.

Överlagringar

Name Description
GetBytes(String)

Kodar tecknen i ett angivet String objekt till en sekvens med byte.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Kodar det angivna teckenintervallet till det angivna byteintervallet.

GetBytes(Char*, Int32, Byte*, Int32)

Kodar en uppsättning tecken som börjar vid den angivna teckenpekaren till en sekvens med byte som lagras från och med den angivna bytepekaren.

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Kodar en uppsättning tecken från den angivna teckenmatrisen till den angivna bytematrisen.

GetBytes(String, Int32, Int32, Byte[], Int32)

Kodar en uppsättning tecken från den angivna String i den angivna bytematrisen.

GetBytes(String)

Kodar tecknen i ett angivet String objekt till en sekvens med byte.

public:
 override cli::array <System::Byte> ^ GetBytes(System::String ^ s);
public override byte[] GetBytes(string s);
override this.GetBytes : string -> byte[]
Public Overrides Function GetBytes (s As String) As Byte()

Parametrar

s
String

Teckensträngen som ska kodas.

Returer

Byte[]

En bytematris som innehåller de kodade tecknen i strängen som anges av parametern s.

Gäller för

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Kodar det angivna teckenintervallet till det angivna byteintervallet.

public:
 override int GetBytes(ReadOnlySpan<char> chars, Span<System::Byte> bytes);
public override int GetBytes(ReadOnlySpan<char> chars, Span<byte> bytes);
override this.GetBytes : ReadOnlySpan<char> * Span<byte> -> int
Public Overrides Function GetBytes (chars As ReadOnlySpan(Of Char), bytes As Span(Of Byte)) As Integer

Parametrar

chars
ReadOnlySpan<Char>

Teckenintervallet som ska kodas.

bytes
Span<Byte>

Intervallet som ska innehålla den resulterande uppsättningen byte.

Returer

Det faktiska antalet byte som skrivits till bytes.

Kommentarer

Om du vill beräkna den exakta storlek som krävs för GetBytes att lagra de resulterande byteen GetByteCount anropar du metoden. Om du vill beräkna den maximala storleken anropar GetMaxByteCount du metoden. Metoden GetByteCount allokerar vanligtvis mindre minne, medan GetMaxByteCount metoden vanligtvis körs snabbare.

Med felidentifiering leder en ogiltig sekvens till att den här metoden utlöser ett ArgumentException undantag. Utan felidentifiering ignoreras ogiltiga sekvenser och inget undantag utlöses.

Data som ska konverteras, till exempel data som lästs från en dataström, kan endast vara tillgängliga i sekventiella block. I det här fallet, eller om mängden data är så stor att den måste delas upp i mindre block, använder Decoder du eller som Encoder returneras av GetDecoder metoden eller GetEncoder metoden.

För att säkerställa att de kodade byteen avkodas korrekt när de sparas som en fil eller som en ström, kan du prefixa en ström med kodade byte med en ingress. Utvecklaren ansvarar för att infoga ingressen i början av en byteström (till exempel i början av en serie byte som ska skrivas till en fil). Metoden GetBytes förbereder inte en ingress till början av en sekvens med kodade byte.

Gäller för

GetBytes(Char*, Int32, Byte*, Int32)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Viktigt!

Detta API uppfyller inte CLS.

Kodar en uppsättning tecken som börjar vid den angivna teckenpekaren till en sekvens med byte som lagras från och med den angivna bytepekaren.

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)]
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)>]
[<System.Security.SecurityCritical>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
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

Parametrar

chars
Char*

En pekare till det första tecknet som ska kodas.

charCount
Int32

Antalet tecken som ska kodas.

bytes
Byte*

En pekare till den plats där du ska börja skriva den resulterande sekvensen med byte.

byteCount
Int32

Det maximala antalet byte som ska skrivas.

Returer

Det faktiska antalet byte som skrivits på den plats som anges av bytes.

Attribut

Undantag

chars är null.

-eller-

bytes är null.

charCount eller byteCount är mindre än noll.

Felidentifiering är aktiverat och chars innehåller en ogiltig teckensekvens.

-eller-

byteCount är mindre än det resulterande antalet byte.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

EncoderFallback är inställt på EncoderExceptionFallback.

Kommentarer

Om du vill beräkna den exakta matrisstorlek som krävs för GetBytes att lagra de resulterande byteen GetByteCount anropar du metoden. Om du vill beräkna den maximala matrisstorleken GetMaxByteCount anropar du metoden. Metoden GetByteCount allokerar vanligtvis mindre minne, medan GetMaxByteCount metoden vanligtvis körs snabbare.

Med felidentifiering leder en ogiltig sekvens till att den här metoden utlöser ett ArgumentException undantag. Utan felidentifiering ignoreras ogiltiga sekvenser och inget undantag utlöses.

Data som ska konverteras, till exempel data som lästs från en dataström, kan endast vara tillgängliga i sekventiella block. I det här fallet, eller om mängden data är så stor att den måste delas upp i mindre block, använder Decoder du eller som Encoder returneras av GetDecoder metoden eller GetEncoder metoden.

För att säkerställa att de kodade byteen avkodas korrekt när de sparas som en fil eller som en ström, kan du prefixa en ström med kodade byte med en ingress. Utvecklaren ansvarar för att infoga ingressen i början av en byteström (till exempel i början av en serie byte som ska skrivas till en fil). Metoden GetBytes förbereder inte en ingress till början av en sekvens med kodade byte.

Se även

Gäller för

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Kodar en uppsättning tecken från den angivna teckenmatrisen till den angivna bytematrisen.

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

Parametrar

chars
Char[]

Teckenmatrisen som innehåller den uppsättning tecken som ska kodas.

charIndex
Int32

Indexet för det första tecknet som ska kodas.

charCount
Int32

Antalet tecken som ska kodas.

bytes
Byte[]

Bytematrisen som ska innehålla den resulterande sekvensen av byte.

byteIndex
Int32

Indexet där du ska börja skriva den resulterande sekvensen med byte.

Returer

Det faktiska antalet byte som skrivits till bytes.

Undantag

chars är null.

-eller-

bytes är null.

charIndex eller charCountbyteIndex är mindre än noll.

-eller-

charIndex och charCount ange inte ett giltigt intervall i chars.

-eller-

byteIndex är inte ett giltigt index i bytes.

Felidentifiering är aktiverat och chars innehåller en ogiltig teckensekvens.

-eller-

bytes har inte tillräckligt med kapacitet från byteIndex till slutet av matrisen för att rymma de resulterande byteen.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

EncoderFallback är inställt på EncoderExceptionFallback.

Exempel

I följande exempel används GetBytes metoden för att koda ett intervall med tecken från en sträng och lagrar kodade byte i ett område med element i en bytematris.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Byte[] bytes;
        String chars = "UTF8 Encoding Example";
        
        UTF8Encoding utf8 = new UTF8Encoding();
        
        int byteCount = utf8.GetByteCount(chars.ToCharArray(), 0, 13);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf8.GetBytes(chars, 0, 13, bytes, 0);
        
        Console.WriteLine(
            "{0} bytes used to encode string.", bytesEncodedCount
        );

        Console.Write("Encoded bytes: ");
        foreach (Byte b in bytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte
        Dim chars As String = "UTF8 Encoding Example"
        
        Dim utf8 As New UTF8Encoding()
        
        Dim byteCount As Integer = utf8.GetByteCount(chars.ToCharArray(), 0, 13)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = utf8.GetBytes(chars, 0, 13, bytes, 0)
        
        Console.WriteLine("{0} bytes used to encode string.", 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

Kommentarer

Om du vill beräkna den exakta matrisstorlek som krävs för GetBytes att lagra de resulterande byteen GetByteCount anropar du metoden. Om du vill beräkna den maximala matrisstorleken GetMaxByteCount anropar du metoden. Metoden GetByteCount allokerar vanligtvis mindre minne, medan GetMaxByteCount metoden vanligtvis körs snabbare.

Med felidentifiering leder en ogiltig sekvens till att den här metoden utlöser ett ArgumentException undantag. Utan felidentifiering ignoreras ogiltiga sekvenser och inget undantag utlöses.

Data som ska konverteras, till exempel data som lästs från en dataström, kan endast vara tillgängliga i sekventiella block. I det här fallet, eller om mängden data är så stor att den måste delas upp i mindre block, använder Decoder du eller Encoder som tillhandahålls av GetDecoder metoden eller GetEncoder metoden.

För att säkerställa att de kodade byteen avkodas korrekt när de sparas som en fil eller som en ström, kan du prefixa en ström med kodade byte med en ingress. Utvecklaren ansvarar för att infoga ingressen i början av en byteström (till exempel i början av en serie byte som ska skrivas till en fil). Metoden GetBytes förbereder inte en ingress till början av en sekvens med kodade byte.

Se även

Gäller för

GetBytes(String, Int32, Int32, Byte[], Int32)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Kodar en uppsättning tecken från den angivna String i den angivna bytematrisen.

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);
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

Parametrar

s
String

Innehåller String den uppsättning tecken som ska kodas.

charIndex
Int32

Indexet för det första tecknet som ska kodas.

charCount
Int32

Antalet tecken som ska kodas.

bytes
Byte[]

Bytematrisen som ska innehålla den resulterande sekvensen av byte.

byteIndex
Int32

Indexet där du ska börja skriva den resulterande sekvensen med byte.

Returer

Det faktiska antalet byte som skrivits till bytes.

Undantag

s är null.

-eller-

bytes är null.

charIndex eller charCountbyteIndex är mindre än noll.

-eller-

charIndex och charCount ange inte ett giltigt intervall i s.

-eller-

byteIndex är inte ett giltigt index i bytes.

Felidentifiering är aktiverat och s innehåller en ogiltig teckensekvens.

-eller-

bytes har inte tillräckligt med kapacitet från byteIndex till slutet av matrisen för att rymma de resulterande byteen.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

EncoderFallback är inställt på EncoderExceptionFallback.

Exempel

I följande exempel används GetBytes metoden för att koda ett område med element från en Unicode-teckenmatris och lagra kodade byte i ett område med element i en bytematris.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };
        
        UTF8Encoding utf8 = new UTF8Encoding();
        
        int byteCount = utf8.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf8.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 UTF8EncodingExample
    
    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 utf8 As New UTF8Encoding()
        
        Dim byteCount As Integer = utf8.GetByteCount(chars, 1, 2)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = utf8.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

Kommentarer

Om du vill beräkna den exakta matrisstorlek som krävs för GetBytes att lagra de resulterande byteen GetByteCount anropar du metoden. Om du vill beräkna den maximala matrisstorleken GetMaxByteCount anropar du metoden. Metoden GetByteCount allokerar vanligtvis mindre minne, medan GetMaxByteCount metoden vanligtvis körs snabbare.

Med felidentifiering leder en ogiltig sekvens till att den här metoden utlöser ett ArgumentException undantag. Utan felidentifiering ignoreras ogiltiga sekvenser och inget undantag utlöses.

Data som ska konverteras, till exempel data som lästs från en dataström, kan endast vara tillgängliga i sekventiella block. I det här fallet, eller om mängden data är så stor att den måste delas upp i mindre block, använder Decoder du eller Encoder som tillhandahålls av GetDecoder metoden eller GetEncoder metoden.

För att säkerställa att de kodade byteen avkodas korrekt när de sparas som en fil eller som en ström, kan du prefixa en ström med kodade byte med en ingress. Utvecklaren ansvarar för att infoga ingressen i början av en byteström (till exempel i början av en serie byte som ska skrivas till en fil). Metoden GetBytes förbereder inte en ingress till början av en sekvens med kodade byte.

Se även

Gäller för