UTF8Encoding.GetBytes 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
문자 집합을 바이트 시퀀스로 인코딩합니다.
오버로드
GetBytes(String) |
지정한 String 개체의 문자를 바이트 시퀀스로 인코딩합니다. |
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
지정된 문자 범위를 지정된 바이트 범위로 인코딩합니다. |
GetBytes(Char*, Int32, Byte*, Int32) |
지정한 문자 포인터에서 시작하는 문자 집합을 지정한 바이트 포인터에서 시작하여 저장되는 바이트 시퀀스로 인코딩합니다. |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
지정한 문자 배열의 문자 집합을 지정한 바이트 배열로 인코딩합니다. |
GetBytes(String, Int32, Int32, Byte[], Int32) |
지정된 String의 문자 집합을 지정된 바이트 배열로 인코딩합니다. |
GetBytes(String)
지정한 String 개체의 문자를 바이트 시퀀스로 인코딩합니다.
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()
매개 변수
- s
- String
인코딩할 문자열입니다.
반환
s 매개 변수에 지정된 문자열에 인코딩된 문자를 포함하는 바이트 배열입니다.
적용 대상
GetBytes(ReadOnlySpan<Char>, Span<Byte>)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
지정된 문자 범위를 지정된 바이트 범위로 인코딩합니다.
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
매개 변수
- chars
- ReadOnlySpan<Char>
인코딩할 문자 범위입니다.
반환
bytes
에 쓴 실제 바이트 수입니다.
설명
결과 바이트를 저장하는 데 필요한 GetBytes 정확한 크기를 계산하려면 메서드를 GetByteCount 호출합니다. 최대 크기를 계산하려면 메서드를 호출합니다 GetMaxByteCount . 메서드는 GetByteCount 일반적으로 메모리를 적게 할당하지만 메서드는 GetMaxByteCount 일반적으로 더 빠르게 실행됩니다.
오류 검색 시 잘못된 시퀀스로 인해 이 메서드가 예외를 throw합니다 ArgumentException . 오류 검색이 없으면 잘못된 시퀀스가 무시되고 예외가 throw되지 않습니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차적 블록에서만 사용할 수 있습니다. 이 경우 또는 데이터의 양이 너무 커서 더 작은 블록으로 나누어야 하는 경우 메서드 또는 메서드에서 반환된 GetDecoder 또는 Encoder 를 GetEncoder 각각 사용합니다Decoder.
인코딩된 바이트가 파일 또는 스트림으로 저장될 때 제대로 디코딩되도록 하려면 인코딩된 바이트 스트림의 접두사를 프리앰블로 접두사로 지정할 수 있습니다. 바이트 스트림의 시작 부분에 프리앰블을 삽입하는 것은 개발자의 책임입니다(예: 파일에 쓸 일련의 바이트 시작 시). 메서드는 GetBytes 인코딩된 바이트 시퀀스의 시작 부분에 프리앰블을 추가하지 않습니다.
적용 대상
GetBytes(Char*, Int32, Byte*, Int32)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
중요
이 API는 CLS 규격이 아닙니다.
지정한 문자 포인터에서 시작하는 문자 집합을 지정한 바이트 포인터에서 시작하여 저장되는 바이트 시퀀스로 인코딩합니다.
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
매개 변수
- chars
- Char*
인코딩할 첫 번째 문자를 가리키는 포인터입니다.
- charCount
- Int32
인코딩할 문자 수입니다.
- bytes
- Byte*
결과 바이트 시퀀스를 쓰기 시작할 위치를 가리키는 포인터입니다.
- byteCount
- Int32
쓸 최대 바이트 수입니다.
반환
bytes
가 가리키는 위치에 써지는 실제 바이트 수입니다.
- 특성
예외
charCount
또는 byteCount
가 0보다 작습니다.
설명
결과 바이트를 저장하는 데 필요한 GetBytes 정확한 배열 크기를 계산하려면 메서드를 GetByteCount 호출합니다. 최대 배열 크기를 계산하려면 메서드를 호출합니다 GetMaxByteCount . 메서드는 GetByteCount 일반적으로 메모리를 적게 할당하지만 메서드는 GetMaxByteCount 일반적으로 더 빠르게 실행됩니다.
오류 검색 시 잘못된 시퀀스로 인해 이 메서드가 예외를 throw합니다 ArgumentException . 오류 검색이 없으면 잘못된 시퀀스가 무시되고 예외가 throw되지 않습니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차적 블록에서만 사용할 수 있습니다. 이 경우 또는 데이터의 양이 너무 커서 더 작은 블록으로 나누어야 하는 경우 메서드 또는 메서드에서 반환된 GetDecoder 또는 Encoder 를 GetEncoder 각각 사용합니다Decoder.
인코딩된 바이트가 파일 또는 스트림으로 저장될 때 제대로 디코딩되도록 하려면 인코딩된 바이트 스트림의 접두사를 프리앰블로 접두사로 지정할 수 있습니다. 바이트 스트림의 시작 부분에 프리앰블을 삽입하는 것은 개발자의 책임입니다(예: 파일에 쓸 일련의 바이트 시작 시). 메서드는 GetBytes 인코딩된 바이트 시퀀스의 시작 부분에 프리앰블을 추가하지 않습니다.
추가 정보
적용 대상
GetBytes(Char[], Int32, Int32, Byte[], Int32)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
지정한 문자 배열의 문자 집합을 지정한 바이트 배열로 인코딩합니다.
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
매개 변수
- chars
- Char[]
인코딩할 문자 집합이 포함된 문자 배열입니다.
- charIndex
- Int32
인코딩할 첫 번째 문자의 인덱스입니다.
- charCount
- Int32
인코딩할 문자 수입니다.
- bytes
- Byte[]
결과 바이트 시퀀스를 포함할 바이트 배열입니다.
- byteIndex
- Int32
결과 바이트 시퀀스를 쓰기 시작할 인덱스입니다.
반환
bytes
에 쓴 실제 바이트 수입니다.
예외
charIndex
, charCount
또는 byteIndex
가 0보다 작은 경우
또는
charIndex
및 charCount
가 chars
에서 올바른 범위를 나타내지 않습니다.
또는
byteIndex
가 bytes
의 유효한 인덱스가 아닌 경우
오류 검색이 사용되고 chars
에 잘못된 문자 시퀀스를 포함합니다.
또는
bytes
의 용량(byteIndex
~ 배열 끝)이 부족해서 결과 바이트를 수용할 수 없는 경우
예제
다음 예제에서는 메서드를 GetBytes 사용하여 문자열의 문자 범위를 인코딩하고 인코딩된 바이트를 바이트 배열의 요소 범위에 저장합니다.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Byte>^bytes;
String^ chars = "UTF8 Encoding Example";
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
int byteCount = utf8->GetByteCount( chars->ToCharArray(), 0, 13 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = utf8->GetBytes( chars, 0, 13, bytes, 0 );
Console::WriteLine( "{0} bytes used to encode string.", bytesEncodedCount );
Console::Write( "Encoded bytes: " );
IEnumerator^ myEnum = bytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
Console::Write( "[{0}]", b );
}
Console::WriteLine();
}
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
설명
결과 바이트를 저장하는 데 필요한 GetBytes 정확한 배열 크기를 계산하려면 메서드를 GetByteCount 호출합니다. 최대 배열 크기를 계산하려면 메서드를 호출합니다 GetMaxByteCount . 메서드는 GetByteCount 일반적으로 메모리를 적게 할당하지만 메서드는 GetMaxByteCount 일반적으로 더 빠르게 실행됩니다.
오류 검색 시 잘못된 시퀀스로 인해 이 메서드가 예외를 throw합니다 ArgumentException . 오류 검색이 없으면 잘못된 시퀀스가 무시되고 예외가 throw되지 않습니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차적 블록에서만 사용할 수 있습니다. 이 경우 또는 데이터의 양이 너무 커서 더 작은 블록으로 나누어야 하는 경우 메서드 또는 GetEncoder 메서드에서 제공하는 GetDecoder 또는 Encoder 를 각각 사용합니다Decoder.
인코딩된 바이트가 파일 또는 스트림으로 저장될 때 제대로 디코딩되도록 하려면 인코딩된 바이트 스트림의 접두사를 프리앰블로 접두사로 지정할 수 있습니다. 바이트 스트림의 시작 부분에 프리앰블을 삽입하는 것은 개발자의 책임입니다(예: 파일에 쓸 일련의 바이트 시작 시). 메서드는 GetBytes 인코딩된 바이트 시퀀스의 시작 부분에 프리앰블을 추가하지 않습니다.
추가 정보
적용 대상
GetBytes(String, Int32, Int32, Byte[], Int32)
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
- Source:
- UTF8Encoding.cs
지정된 String의 문자 집합을 지정된 바이트 배열로 인코딩합니다.
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
매개 변수
- charIndex
- Int32
인코딩할 첫 번째 문자의 인덱스입니다.
- charCount
- Int32
인코딩할 문자 수입니다.
- bytes
- Byte[]
결과 바이트 시퀀스를 포함할 바이트 배열입니다.
- byteIndex
- Int32
결과 바이트 시퀀스를 쓰기 시작할 인덱스입니다.
반환
bytes
에 쓴 실제 바이트 수입니다.
예외
charIndex
, charCount
또는 byteIndex
가 0보다 작은 경우
또는
charIndex
및 charCount
가 chars
에서 올바른 범위를 나타내지 않습니다.
또는
byteIndex
가 bytes
의 유효한 인덱스가 아닌 경우
오류 검색이 사용되고 s
에 잘못된 문자 시퀀스를 포함합니다.
또는
bytes
의 용량(byteIndex
~ 배열 끝)이 부족해서 결과 바이트를 수용할 수 없는 경우
예제
다음 예제에서는 메서드를 GetBytes 사용하여 유니코드 문자 배열의 요소 범위를 인코딩하고 인코딩된 바이트를 바이트 배열의 요소 범위에 저장합니다.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Byte>^bytes;
// Unicode characters.
// Pi
// Sigma
array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
int byteCount = utf8->GetByteCount( chars, 1, 2 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = utf8->GetBytes( chars, 1, 2, bytes, 0 );
Console::WriteLine( "{0} bytes used to encode characters.", bytesEncodedCount );
Console::Write( "Encoded bytes: " );
IEnumerator^ myEnum = bytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
Console::Write( "[{0}]", b );
}
Console::WriteLine();
}
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
설명
결과 바이트를 저장하는 데 필요한 GetBytes 정확한 배열 크기를 계산하려면 메서드를 호출합니다 GetByteCount . 최대 배열 크기를 계산하려면 메서드를 호출합니다 GetMaxByteCount . 메서드는 GetByteCount 일반적으로 더 적은 메모리를 할당하지만 메서드는 GetMaxByteCount 일반적으로 더 빠르게 실행됩니다.
오류 검색 시퀀스가 잘못되면 이 메서드가 예외를 throw합니다 ArgumentException . 오류 검색이 없으면 잘못된 시퀀스가 무시되고 예외가 throw되지 않습니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차 블록에서만 사용할 수 있습니다. 이 경우 또는 데이터의 양이 너무 커서 더 작은 블록으로 나누어야 하는 경우 메서드 또는 GetEncoder 메서드에서 제공하는 GetDecoder 또는 Encoder 를 각각 사용합니다Decoder.
인코딩된 바이트가 파일 또는 스트림으로 저장될 때 제대로 디코딩되도록 하려면 인코딩된 바이트 스트림의 접두사를 프리앰블로 접두사로 지정할 수 있습니다. 바이트 스트림의 시작 부분에 프리앰블을 삽입하는 것은 개발자의 책임입니다(예: 파일에 쓸 일련의 바이트 시작 부분). 메서드는 GetBytes 인코딩된 바이트 시퀀스의 시작 부분에 프리앰블 앞에 추가되지 않습니다.
추가 정보
적용 대상
.NET