UTF7Encoding.GetBytes メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
文字のセットをバイト シーケンスにエンコードします。
オーバーロード
| 名前 | 説明 |
|---|---|
| GetBytes(Char*, Int32, Byte*, Int32) |
指定した文字ポインターから始まる一連の文字を、指定したバイト ポインターから始めて格納されるバイトシーケンスにエンコードします。 |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
指定した文字配列の文字セットを、指定したバイト配列にエンコードします。 |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
指定した String の文字セットを、指定したバイト配列にエンコードします。 |
GetBytes(Char*, Int32, Byte*, Int32)
重要
この 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)]
[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
パラメーター
- chars
- Char*
エンコードする最初の文字へのポインター。
- charCount
- Int32
エンコードする文字数。
- bytes
- Byte*
結果のバイト シーケンスの書き込みを開始する位置へのポインター。
- byteCount
- Int32
書き込む最大バイト数。
返品
bytesによって示される場所に書き込まれた実際のバイト数。
- 属性
例外
charCount または byteCount が 0 未満です。
byteCount が結果のバイト数より小さい。
フォールバックが発生しました (詳細な説明については、
および
EncoderFallback は EncoderExceptionFallback に設定されます。
注釈
結果のバイトを格納するために GetBytes に必要な正確な配列サイズを計算するために、アプリケーションは GetByteCountを使用します。 配列の最大サイズを計算するには、アプリケーションで GetMaxByteCountを使用する必要があります。 一般に、 GetByteCount メソッドではメモリの割り当てが少なくなりますが、 GetMaxByteCount メソッドの実行速度は一般的に速くなります。
ストリームから読み取られたデータなど、変換するデータは、シーケンシャル ブロックでのみ使用できます。 この場合、またはデータの量が非常に大きくて小さいブロックに分割する必要がある場合、アプリケーションでは、GetDecoder メソッドまたは GetEncoder メソッドによって提供されるDecoderまたはEncoderをそれぞれ使用する必要があります。
Note
UTF7Encoding はエラー検出を提供しません。 無効な文字は、変更された base 64 文字としてエンコードされます。 セキュリティ上の理由から、アプリケーションは UTF8Encoding、 UnicodeEncoding、または UTF32Encoding を使用してエラー検出を有効にすることをお勧めします。
こちらもご覧ください
適用対象
GetBytes(Char[], Int32, Int32, Byte[], Int32)
指定した文字配列の文字セットを、指定したバイト配列にエンコードします。
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 から配列の末尾まで十分な容量を持っていません。
フォールバックが発生しました (詳細な説明については、
および
EncoderFallback は EncoderExceptionFallback に設定されます。
例
次のコード例では、 GetBytes メソッドを使用して String から文字の範囲をエンコードし、エンコードされたバイトをバイト配列内の要素の範囲に格納する方法を示します。
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
注釈
結果のバイトを格納するために GetBytes に必要な正確な配列サイズを計算するために、アプリケーションは GetByteCountを使用します。 配列の最大サイズを計算するには、アプリケーションで GetMaxByteCountを使用する必要があります。 一般に、 GetByteCount メソッドではメモリの割り当てが少なくなりますが、 GetMaxByteCount メソッドの実行速度は一般的に速くなります。
ストリームから読み取られたデータなど、変換するデータは、シーケンシャル ブロックでのみ使用できます。 この場合、またはデータの量が非常に大きくて小さいブロックに分割する必要がある場合、アプリケーションでは、GetDecoder メソッドまたは GetEncoder メソッドによって提供されるDecoderまたはEncoderをそれぞれ使用する必要があります。
Note
UTF7Encoding はエラー検出を提供しません。 無効な文字は、変更された base 64 文字としてエンコードされます。 セキュリティ上の理由から、アプリケーションは UTF8Encoding、 UnicodeEncoding、または UTF32Encoding を使用してエラー検出を有効にすることをお勧めします。
こちらもご覧ください
適用対象
GetBytes(String, Int32, Int32, Byte[], Int32)
指定した 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);
[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
パラメーター
- charIndex
- Int32
エンコードする最初の文字のインデックス。
- charCount
- Int32
エンコードする文字数。
- bytes
- Byte[]
結果のバイト シーケンスを格納するバイト配列。
- byteIndex
- Int32
結果のバイト シーケンスの書き込みを開始する位置のインデックス。
返品
bytesに書き込まれた実際のバイト数。
- 属性
例外
charIndex または charCount または byteIndex が 0 未満です。
-または-
charIndex および charCount は、 s内の有効な範囲を示していません。
-または-
byteIndex は、 bytesの有効なインデックスではありません。
bytes は、結果のバイトに対応するために、 byteIndex から配列の末尾まで十分な容量を持っていません。
フォールバックが発生しました (詳細な説明については、
および
EncoderFallback は EncoderExceptionFallback に設定されます。
例
次のコード例では、 GetBytes メソッドを使用して Unicode 文字配列から要素の範囲をエンコードし、エンコードされたバイトをバイト配列内の要素の範囲に格納する方法を示します。
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
注釈
結果のバイトを格納するために GetBytes に必要な正確な配列サイズを計算するために、アプリケーションは GetByteCountを使用します。 配列の最大サイズを計算するには、アプリケーションで GetMaxByteCountを使用する必要があります。 一般に、 GetByteCount メソッドではメモリの割り当てが少なくなりますが、 GetMaxByteCount メソッドの実行速度は一般的に速くなります。
ストリームから読み取られたデータなど、変換するデータは、シーケンシャル ブロックでのみ使用できます。 この場合、またはデータの量が非常に大きくて小さいブロックに分割する必要がある場合、アプリケーションでは、GetDecoder メソッドまたは GetEncoder メソッドによって提供されるDecoderまたはEncoderをそれぞれ使用する必要があります。
Note
UTF7Encoding はエラー検出を提供しません。 無効な文字は、変更された base 64 文字としてエンコードされます。 セキュリティ上の理由から、アプリケーションは UTF8Encoding、 UnicodeEncoding、または UTF32Encoding を使用してエラー検出を有効にすることをお勧めします。