Encoding.Convert メソッド

定義

バイト配列を、あるエンコーディングから別のエンコーディングに変換します。

オーバーロード

Convert(Encoding, Encoding, Byte[], Int32, Int32)

バイト配列内のバイトの範囲を、あるエンコーディングから別のエンコーディングに変換します。

Convert(Encoding, Encoding, Byte[])

バイト配列全体を、あるエンコーディングから別のエンコーディングに変換します。

Convert(Encoding, Encoding, Byte[], Int32, Int32)

バイト配列内のバイトの範囲を、あるエンコーディングから別のエンコーディングに変換します。

public:
 static cli::array <System::Byte> ^ Convert(System::Text::Encoding ^ srcEncoding, System::Text::Encoding ^ dstEncoding, cli::array <System::Byte> ^ bytes, int index, int count);
public static byte[] Convert (System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes, int index, int count);
static member Convert : System.Text.Encoding * System.Text.Encoding * byte[] * int * int -> byte[]
Public Shared Function Convert (srcEncoding As Encoding, dstEncoding As Encoding, bytes As Byte(), index As Integer, count As Integer) As Byte()

パラメーター

srcEncoding
Encoding

変換前の配列 bytes のエンコーディング。

dstEncoding
Encoding

変換後の配列のエンコーディング。

bytes
Byte[]

変換対象のバイト配列。

index
Int32

変換対象の bytes の最初の要素を示すインデックス。

count
Int32

変換するバイト数。

戻り値

Byte[]

Byte に含まれる特定の範囲のバイトを bytes から srcEncoding へ変換した結果が格納されている dstEncoding 型の配列。

例外

srcEncodingnull です。

または

dstEncodingnull です。

または

bytesnull です。

index および count がバイト配列内の有効範囲を指定していません。

フォールバックが発生しました (詳細については「.NET での文字エンコード」を参照)

および

srcEncoding です。 DecoderFallbackDecoderExceptionFallback に設定されます。

フォールバックが発生しました (詳細については「.NET での文字エンコード」を参照)

および

dstEncoding です。 EncoderFallbackEncoderExceptionFallback に設定されます。

適用対象

Convert(Encoding, Encoding, Byte[])

バイト配列全体を、あるエンコーディングから別のエンコーディングに変換します。

public:
 static cli::array <System::Byte> ^ Convert(System::Text::Encoding ^ srcEncoding, System::Text::Encoding ^ dstEncoding, cli::array <System::Byte> ^ bytes);
public static byte[] Convert (System.Text.Encoding srcEncoding, System.Text.Encoding dstEncoding, byte[] bytes);
static member Convert : System.Text.Encoding * System.Text.Encoding * byte[] -> byte[]
Public Shared Function Convert (srcEncoding As Encoding, dstEncoding As Encoding, bytes As Byte()) As Byte()

パラメーター

srcEncoding
Encoding

bytes のエンコーディング形式。

dstEncoding
Encoding

変換後のエンコーディング形式。

bytes
Byte[]

変換対象のバイト。

戻り値

Byte[]

Bytebytes から srcEncoding へ変換した結果を格納する dstEncoding 型の配列。

例外

srcEncodingnull です。

または

dstEncodingnull です。

または

bytesnull です。

フォールバックが発生しました (詳細については「.NET での文字エンコード」を参照)

および

srcEncoding です。 DecoderFallbackDecoderExceptionFallback に設定されます。

フォールバックが発生しました (詳細については「.NET での文字エンコード」を参照)

および

dstEncoding です。 EncoderFallbackEncoderExceptionFallback に設定されます。

次の例では、Unicode でエンコードされた文字列を ASCII エンコードされた文字列に変換します。 プロパティによって返される ASCII エンコーディングオブジェクトが ASCII 置換フォールバックを使用し、pi 文字が ascii 文字セットの一部ではないため、例の出力が示すように、pi 文字は疑問符で置き換えられます。

using namespace System;
using namespace System::Text;

int main()
{
   String^ unicodeString = "This string contains the unicode character Pi (\u03a0)";
   
   // Create two different encodings.
   Encoding^ ascii = Encoding::ASCII;
   Encoding^ unicode = Encoding::Unicode;
   
   // Convert the string into a byte array.
   array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
   
   // Perform the conversion from one encoding to the other.
   array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
   
   // Convert the new Byte into[] a char and[] then into a string.
   array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
   ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
   String^ asciiString = gcnew String( asciiChars );
   
   // Display the strings created before and after the conversion.
   Console::WriteLine( "Original String*: {0}", unicodeString );
   Console::WriteLine( "Ascii converted String*: {0}", asciiString );
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
using System;
using System.Text;

class Example
{
   static void Main()
   {
      string unicodeString = "This string contains the unicode character Pi (\u03a0)";

      // Create two different encodings.
      Encoding ascii = Encoding.ASCII;
      Encoding unicode = Encoding.Unicode;

      // Convert the string into a byte array.
      byte[] unicodeBytes = unicode.GetBytes(unicodeString);

      // Perform the conversion from one encoding to the other.
      byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
         
      // Convert the new byte[] into a char[] and then into a string.
      char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
      string asciiString = new string(asciiChars);

      // Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString);
      Console.WriteLine("Ascii converted string: {0}", asciiString);
   }
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text

Class Example
   Shared Sub Main()
      Dim unicodeString As String = "This string contains the unicode character Pi (" & ChrW(&H03A0) & ")"

      ' Create two different encodings.
      Dim ascii As Encoding = Encoding.ASCII
      Dim unicode As Encoding = Encoding.Unicode

      ' Convert the string into a byte array.
      Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)

      ' Perform the conversion from one encoding to the other.
      Dim asciiBytes As Byte() = Encoding.Convert(unicode, ascii, unicodeBytes)

      ' Convert the new byte array into a char array and then into a string.
      Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) As Char
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
      Dim asciiString As New String(asciiChars)

      ' Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString)
      Console.WriteLine("Ascii converted string: {0}", asciiString)
   End Sub
End Class
' The example displays the following output:
'    Original string: This string contains the unicode character Pi (Π)
'    Ascii converted string: This string contains the unicode character Pi (?)

適用対象