ASCIIEncoding.GetBytes 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
문자 집합을 바이트 시퀀스로 인코딩합니다.
오버로드
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
지정된 문자 범위를 지정된 바이트 범위로 인코딩합니다. |
GetBytes(Char*, Int32, Byte*, Int32) |
지정한 문자 포인터에서 시작하는 문자 집합을 지정한 바이트 포인터에서 시작하여 저장되는 바이트 시퀀스로 인코딩합니다. |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
지정한 문자 배열의 문자 집합을 지정한 바이트 배열로 인코딩합니다. |
GetBytes(String, Int32, Int32, Byte[], Int32) |
지정된 String의 문자 집합을 지정된 바이트 배열로 인코딩합니다. |
GetBytes(ReadOnlySpan<Char>, Span<Byte>)
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.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 메서드는 일반적으로 더 빠르게 실행 됩니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차 블록에서만 사용할 수 있습니다. 이 경우 또는 데이터의 양이 너무 커서 더 작은 블록으로 나누어야 하는 경우 메서드 또는 GetEncoder 메서드에서 제공하는 GetDecoder 또는 Encoder 를 각각 사용합니다Decoder.
ASCIIEncoding 는 오류 검색을 제공하지 않습니다. 보다 U+007F
큰 유니코드 문자는 ASCII 물음표("?")로 인코딩됩니다.
주의
보안상의 이유로 , 또는 UTF32Encoding 를 UnicodeEncoding사용하고 UTF8Encoding오류 검색을 사용하도록 설정해야 합니다.
적용 대상
GetBytes(Char*, Int32, Byte*, Int32)
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.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보다 작습니다.
byteCount
가 결과 바이트 수보다 작은 경우
설명
에 필요한 정확한 배열 크기를 계산 하려면 GetBytes 애플리케이션에서는 결과 바이트를 저장 하려면 GetByteCount합니다. 최대 배열 크기를 계산 하려면 애플리케이션을 사용할지 GetMaxByteCount합니다. 메서드는 일반적으로 더 GetByteCount 많은 메모리를 할당 하는 것을 허용 하지만 GetMaxByteCount 메서드는 일반적으로 더 빠르게 실행 됩니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차 블록에서만 사용할 수 있습니다. 이 경우 애플리케이션 데이터의 양이 너무 커서 작은 블록으로 나눌 필요가 있는 경우를 사용 해야 합니다 Decoder 또는 Encoder 제공한를 GetDecoder 메서드 또는 GetEncoder 메서드를 각각.
ASCIIEncoding 는 오류 검색을 제공하지 않습니다. U+007F보다 큰 유니코드 문자는 ASCII 물음표("?")로 변환됩니다.
주의
보안상의 이유로 애플리케이션 사용 것이 좋습니다 UTF8Encoding, UnicodeEncoding, 또는 UTF32Encoding 오류 검색을 사용 하도록 설정 합니다.
추가 정보
적용 대상
GetBytes(Char[], Int32, Int32, Byte[], Int32)
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.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
의 유효한 인덱스가 아닌 경우
bytes
의 용량(byteIndex
~ 배열 끝)이 부족해서 결과 바이트를 수용할 수 없는 경우
예제
다음 예제에서는 메서드를 사용하여 GetBytes 문자열의 문자 범위를 인코딩하고 인코딩된 문자를 바이트 배열의 요소 범위에 저장하는 방법을 보여 줍니다.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Byte>^bytes;
String^ chars = "ASCII Encoding Example";
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
int byteCount = ascii->GetByteCount( chars->ToCharArray(), 6, 8 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = ascii->GetBytes( chars, 6, 8, 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 ASCIIEncodingExample {
public static void Main() {
Byte[] bytes;
String chars = "ASCII Encoding Example";
ASCIIEncoding ascii = new ASCIIEncoding();
int byteCount = ascii.GetByteCount(chars.ToCharArray(), 6, 8);
bytes = new Byte[byteCount];
int bytesEncodedCount = ascii.GetBytes(chars, 6, 8, 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 ASCIIEncodingExample
Public Shared Sub Main()
Dim bytes() As Byte
Dim chars As String = "ASCII Encoding Example"
Dim ascii As New ASCIIEncoding()
Dim byteCount As Integer = ascii.GetByteCount(chars.ToCharArray(), 6, 8)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = ascii.GetBytes(chars, 6, 8, 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 메서드는 일반적으로 더 빠르게 실행 됩니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차 블록에서만 사용할 수 있습니다. 이 경우 애플리케이션 데이터의 양이 너무 커서 작은 블록으로 나눌 필요가 있는 경우를 사용 해야 합니다 Decoder 또는 Encoder 제공한를 GetDecoder 메서드 또는 GetEncoder 메서드를 각각.
ASCIIEncoding 는 오류 검색을 제공하지 않습니다. U+007F보다 큰 유니코드 문자는 ASCII 물음표("?")로 인코딩됩니다.
주의
보안상의 이유로 애플리케이션 사용 것이 좋습니다 UTF8Encoding, UnicodeEncoding, 또는 UTF32Encoding 오류 검색을 사용 하도록 설정 합니다.
추가 정보
적용 대상
GetBytes(String, Int32, Int32, Byte[], Int32)
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.cs
- Source:
- ASCIIEncoding.cs
지정된 String의 문자 집합을 지정된 바이트 배열로 인코딩합니다.
public:
override int GetBytes(System::String ^ chars, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes (string chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
Public Overrides Function GetBytes (chars 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
의 유효한 인덱스가 아닌 경우
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'};
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
int byteCount = ascii->GetByteCount( chars, 1, 2 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = ascii->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 ASCIIEncodingExample {
public static void Main() {
Byte[] bytes;
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
ASCIIEncoding ascii = new ASCIIEncoding();
int byteCount = ascii.GetByteCount(chars, 1, 2);
bytes = new Byte[byteCount];
int bytesEncodedCount = ascii.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 ASCIIEncodingExample
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 ascii As New ASCIIEncoding()
Dim byteCount As Integer = ascii.GetByteCount(chars, 1, 2)
bytes = New Byte(byteCount - 1){}
Dim bytesEncodedCount As Integer = ascii.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 메서드는 일반적으로 더 빠르게 실행 됩니다.
스트림에서 읽은 데이터와 같이 변환할 데이터는 순차적 블록에서만 사용할 수 있습니다. 이 경우 애플리케이션 데이터의 양이 너무 커서 작은 블록으로 나눌 필요가 있는 경우를 사용 해야 합니다 Decoder 또는 Encoder 제공한를 GetDecoder 메서드 또는 GetEncoder 메서드를 각각.
ASCIIEncoding 는 오류 검색을 제공하지 않습니다. U+007F보다 큰 유니코드 문자는 ASCII 물음표("?")로 인코딩됩니다.
주의
보안상의 이유로 애플리케이션 사용 것이 좋습니다 UTF8Encoding, UnicodeEncoding, 또는 UTF32Encoding 오류 검색을 사용 하도록 설정 합니다.
추가 정보
적용 대상
.NET