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

indexcount 不會指定位元組陣列中的有效範圍。

發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)

-和-

srcEncoding。 DecoderFallback 設定為 DecoderExceptionFallback

發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)

-和-

dstEncoding。 EncoderFallback 設定為 EncoderExceptionFallback

適用於

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[]

Byte 類型的陣列,包含將 bytessrcEncoding 轉換成 dstEncoding 的結果。

例外狀況

srcEncodingnull

-或-

dstEncodingnull

-或-

bytesnull

發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)

-和-

srcEncoding。 DecoderFallback 設定為 DecoderExceptionFallback

發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)

-和-

dstEncoding。 EncoderFallback 設定為 EncoderExceptionFallback

範例

下列範例會將 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 (?)

適用於