UTF7Encoding 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表 Unicode 字元的 UTF-7 編碼方式。
public ref class UTF7Encoding : System::Text::Encoding
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
public class UTF7Encoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class UTF7Encoding : System.Text.Encoding
type UTF7Encoding = class
inherit Encoding
[<System.Serializable>]
type UTF7Encoding = class
inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UTF7Encoding = class
inherit Encoding
Public Class UTF7Encoding
Inherits Encoding
- 繼承
- 屬性
範例
下列程式碼範例示範如何使用 UTF7Encoding 編碼 Unicode 字元字串,並將其儲存在位元組陣列中。 請注意,當位元組陣列解碼回字串時,不會遺失任何資料。
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
// Create a UTF-7 encoding.
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
// A Unicode string with two characters outside a 7-bit code range.
String^ unicodeString = L"This Unicode string contains two characters with codes outside a 7-bit code range, Pi (\u03a0) and Sigma (\u03a3).";
Console::WriteLine( "Original string:" );
Console::WriteLine( unicodeString );
// Encode the string.
array<Byte>^encodedBytes = utf7->GetBytes( unicodeString );
Console::WriteLine();
Console::WriteLine( "Encoded bytes:" );
IEnumerator^ myEnum = encodedBytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
Console::Write( "[{0}]", b );
}
Console::WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String^ decodedString = utf7->GetString( encodedBytes );
Console::WriteLine();
Console::WriteLine( "Decoded bytes:" );
Console::WriteLine( decodedString );
}
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
// Create a UTF-7 encoding.
UTF7Encoding utf7 = new UTF7Encoding();
// A Unicode string with two characters outside a 7-bit code range.
String unicodeString =
"This Unicode string contains two characters " +
"with codes outside a 7-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf7.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf7.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
' Create a UTF-7 encoding.
Dim utf7 As New UTF7Encoding()
' A Unicode string with two characters outside a 7-bit code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside a 7-bit code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Encode the string.
Dim encodedBytes As Byte() = utf7.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Decode bytes back to string.
' Notice Pi and Sigma characters are still present.
Dim decodedString As String = utf7.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
備註
編碼是將一組 Unicode 字元轉換成位元組序列的處理程序。 解碼是將編碼位元組序列轉換成一組 Unicode 字元的程式。
UTF-7 編碼會將 Unicode 字元表示為 7 位 ASCII 字元的序列。 此編碼支援所需的特定通訊協定,通常是電子郵件或新聞群組通訊協定。 由於 UTF-7 並非特別安全或強固,而且大部分的新式系統都允許 8 位編碼,因此 UTF-8 通常應該優先于 UTF-7。
注意
UTF7Encoding 不提供錯誤偵測。 基於安全性考慮,應用程式應該使用 UTF8Encoding 、 UnicodeEncoding 或 UTF32Encoding ,並啟用錯誤偵測。
如需 所支援 System.Text 之 UTF 和其他編碼的詳細資訊,請參閱.NET Framework中的字元編碼。
方法 GetByteCount 會決定編碼一組 Unicode 字元所產生的位元組數目,而 方法會 GetBytes 執行實際的編碼。
同樣地, GetCharCount 方法會決定解碼位元組序列的字元數,而 GetChars 和 GetString 方法會執行實際的解碼。
UTF7Encoding 對應至 Windows 字碼頁 65000。
注意
如果使用不同的.NET Framework版本序列化和還原序列化物件,則不會保留 UTF-7 編碼物件的狀態。
建構函式
UTF7Encoding() |
已淘汰.
初始化 UTF7Encoding 類別的新執行個體。 |
UTF7Encoding(Boolean) |
已淘汰.
初始化 UTF7Encoding 類別的新執行個體。 參數可指定是否允許使用選擇性字元。 |
屬性
BodyName |
在衍生類別中覆寫時,取得可以與郵件代理程式主體標籤一起使用的目前編碼方式名稱。 (繼承來源 Encoding) |
CodePage |
在衍生類別中覆寫時,取得目前 Encoding 的字碼頁識別項。 (繼承來源 Encoding) |
DecoderFallback |
取得或設定目前 DecoderFallback 物件的 Encoding 物件。 (繼承來源 Encoding) |
EncoderFallback |
取得或設定目前 EncoderFallback 物件的 Encoding 物件。 (繼承來源 Encoding) |
EncodingName |
在衍生類別中覆寫時,取得目前編碼方式的人們可讀取 (Human-Readable) 的描述。 (繼承來源 Encoding) |
HeaderName |
在衍生類別中覆寫時,取得可以與郵件代理程式標頭標籤一起使用的目前編碼方式名稱。 (繼承來源 Encoding) |
IsBrowserDisplay |
在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可以使用目前的編碼方式來顯示內容。 (繼承來源 Encoding) |
IsBrowserSave |
在衍生類別中覆寫時,取得值,指出瀏覽器用戶端是否可以使用目前的編碼方式來儲存內容。 (繼承來源 Encoding) |
IsMailNewsDisplay |
在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可以使用目前的編碼方式來顯示內容。 (繼承來源 Encoding) |
IsMailNewsSave |
在衍生類別中覆寫時,取得值,指出郵件和新聞用戶端是否可以使用目前的編碼方式來儲存內容。 (繼承來源 Encoding) |
IsReadOnly |
在衍生類別中覆寫時,取得值,指出目前的編碼方式是否為唯讀。 (繼承來源 Encoding) |
IsSingleByte |
在衍生類別中覆寫時,取得值,指出目前的編碼方式是否使用單一位元組字碼指標。 (繼承來源 Encoding) |
Preamble |
在衍生類別中覆寫時,傳回範圍,其包含指定所用編碼方式的位元組序列。 (繼承來源 Encoding) |
WebName |
在衍生類別中覆寫時,若要取得目前的編碼方式,請取得向 Internet Assigned Numbers Authority (IANA) 註冊的名稱。 (繼承來源 Encoding) |
WindowsCodePage |
在衍生類別中覆寫時,請取得最能符合目前編碼方式的 Windows 作業系統字碼頁。 (繼承來源 Encoding) |
方法
Clone() |
在衍生類別中覆寫時,會建立目前 Encoding 物件的淺層複本。 (繼承來源 Encoding) |
Equals(Object) |
取得值,指出指定的物件是否等於目前的 UTF7Encoding 物件。 |
Equals(Object) |
判斷指定的 Object 和目前的執行個體是否相等。 (繼承來源 Encoding) |
GetByteCount(Char*, Int32) |
計算將起始於指定字元指標的一組字元編碼所產生的位元組數目。 |
GetByteCount(Char*, Int32) |
在衍生類別中覆寫時,計算從指定的字元指標開始,編碼一組字元所產生的位元組數目。 (繼承來源 Encoding) |
GetByteCount(Char[]) |
在衍生類別中覆寫時,計算編碼指定字元陣列中所有字元所產生的位元組數目。 (繼承來源 Encoding) |
GetByteCount(Char[], Int32, Int32) |
計算將指定字元陣列中的一組字元編碼所產生的位元組數目。 |
GetByteCount(ReadOnlySpan<Char>) |
在衍生類別中覆寫時,計算藉由編碼指定字元範圍中字元所產生的位元組數。 (繼承來源 Encoding) |
GetByteCount(String) |
編碼指定 String 物件中的字元,從而計算所產生的位元組數。 |
GetByteCount(String) |
在衍生類別中覆寫時,計算編碼指定的字串字元所產生的位元組數目。 (繼承來源 Encoding) |
GetByteCount(String, Int32, Int32) |
在衍生類別中覆寫時,計算藉由從指定的字串編碼一組字元所產生的位元組數。 (繼承來源 Encoding) |
GetBytes(Char*, Int32, Byte*, Int32) |
將起始於指定字元指標的一組字元編碼成位元組序列;儲存該位元組序列時,係以指定的位元組指標為起始點。 |
GetBytes(Char*, Int32, Byte*, Int32) |
在衍生類別中覆寫時,從指定字元指標開始將一組字元編碼成位元組序列 (會從指定的位元組指標開始存放這些位元組)。 (繼承來源 Encoding) |
GetBytes(Char[]) |
在衍生類別中覆寫時,將指定字元陣列中的所有字元編碼成位元組序列。 (繼承來源 Encoding) |
GetBytes(Char[], Int32, Int32) |
在衍生類別中覆寫時,將指定字元陣列中的一組字元編碼成位元組序列。 (繼承來源 Encoding) |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
將指定字元陣列中的一組字元編碼成指定的位元組陣列。 |
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
在衍生類別中覆寫時,從指定的唯讀範圍將一組字元編碼到位元組範圍。 (繼承來源 Encoding) |
GetBytes(String) |
在衍生類別中覆寫時,將指定字串中的所有字元編碼成位元組序列。 (繼承來源 Encoding) |
GetBytes(String, Int32, Int32) |
在衍生類別中覆寫時,從指定字串中指定的 |
GetBytes(String, Int32, Int32, Byte[], Int32) |
將指定 String 中的一組字元編碼成指定的位元組陣列。 |
GetBytes(String, Int32, Int32, Byte[], Int32) |
在衍生類別中覆寫時,將指定字串中的一組字元編碼成指定的位元組陣列。 (繼承來源 Encoding) |
GetCharCount(Byte*, Int32) |
計算將起始於指定位元組指標的位元組序列解碼所產生的字元數。 |
GetCharCount(Byte*, Int32) |
在衍生類別中覆寫時,計算從指定的位元組指標開始,解碼位元組序列所產生的字元數目。 (繼承來源 Encoding) |
GetCharCount(Byte[]) |
在衍生類別中覆寫時,計算解碼指定位元組陣列中所有位元組所產生的字元數目。 (繼承來源 Encoding) |
GetCharCount(Byte[], Int32, Int32) |
計算將指定位元組陣列中的位元組序列解碼所產生的字元數。 |
GetCharCount(ReadOnlySpan<Byte>) |
在衍生類別中覆寫時,計算藉由解碼所提供唯讀位元組範圍時產生的字元數。 (繼承來源 Encoding) |
GetChars(Byte*, Int32, Char*, Int32) |
將起始於指定位元組指標的位元組序列解碼成一組字元;儲存該組字元時,係以指定的字元指標為起始點。 |
GetChars(Byte*, Int32, Char*, Int32) |
在衍生類別中覆寫時,從指定位元組指標開始將位元組序列解碼成一組字元 (會從指定的字元指標開始存放這些字元)。 (繼承來源 Encoding) |
GetChars(Byte[]) |
在衍生類別中覆寫時,將指定位元組陣列中的所有位元組解碼成一組字元。 (繼承來源 Encoding) |
GetChars(Byte[], Int32, Int32) |
在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成一組字元。 (繼承來源 Encoding) |
GetChars(Byte[], Int32, Int32, Char[], Int32) |
將指定位元組陣列中的位元組序列解碼成指定的字元陣列。 |
GetChars(ReadOnlySpan<Byte>, Span<Char>) |
在衍生類別中覆寫時,將指定唯讀位元組範圍中的所有位元組解碼成字元範圍。 (繼承來源 Encoding) |
GetDecoder() |
取得可以將以 UTF-7 編碼的位元組序列轉換成 Unicode 字元序列的解碼器。 |
GetEncoder() |
取得可以將 Unicode 字元序列轉換成以 UTF-7 編碼的位元組序列的編碼器。 |
GetHashCode() |
傳回目前 UTF7Encoding 物件的雜湊碼。 |
GetHashCode() |
傳回目前執行個體的雜湊碼。 (繼承來源 Encoding) |
GetMaxByteCount(Int32) |
計算將指定數目的字元編碼所產生的最大位元組數目。 |
GetMaxCharCount(Int32) |
計算將指定數目的位元組解碼所產生的最大字元數。 |
GetPreamble() |
在衍生類別中覆寫時,傳回可指定所用編碼方式的位元組序列。 (繼承來源 Encoding) |
GetString(Byte*, Int32) |
在衍生類別中覆寫時,將指定位址開頭之指定數目的位元組解碼為字串。 (繼承來源 Encoding) |
GetString(Byte[]) |
在衍生類別中覆寫時,將指定位元組陣列中的所有位元組解碼成字串。 (繼承來源 Encoding) |
GetString(Byte[], Int32, Int32) |
將位元組陣列中的某一段位元組範圍解碼成字串。 |
GetString(Byte[], Int32, Int32) |
在衍生類別中覆寫時,將指定位元組陣列中的位元組序列解碼成字串。 (繼承來源 Encoding) |
GetString(ReadOnlySpan<Byte>) |
在衍生類別中覆寫時,將指定位元組範圍中的所有位元組解碼成字串。 (繼承來源 Encoding) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
IsAlwaysNormalized() |
取得值,指出目前的編碼方式是否永遠都是使用預設的正規化表單進行正規化。 (繼承來源 Encoding) |
IsAlwaysNormalized(NormalizationForm) |
在衍生類別中覆寫時取得值,指出目前的編碼方式是否永遠都是使用指定的正規化表單進行正規化。 (繼承來源 Encoding) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
如果目的地夠大,則從指定的唯讀範圍編碼為一組字元的位元組範圍。 (繼承來源 Encoding) |
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
如果目的地夠大,就會從指定的唯讀範圍將字元解碼成一組位元組。 (繼承來源 Encoding) |
擴充方法
GetBytes(Encoding, ReadOnlySequence<Char>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 編碼為 Byte 陣列。 |
GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 解碼為 |
GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 編碼為 |
GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
使用指定的 Encoding,將指定的 ReadOnlySpan<T> 編碼為 |
GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 解碼為 |
GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 解碼為 |
GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
使用指定的 Encoding,將指定的 ReadOnlySpan<T> 解碼為 |
GetString(Encoding, ReadOnlySequence<Byte>) |
使用指定的 Encoding,將指定的 ReadOnlySequence<T> 解碼為 String。 |