UTF8Encoding.GetMaxByteCount(Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
計算將指定數目的字元編碼所產生的最大位元組數目。
public:
override int GetMaxByteCount(int charCount);
public override int GetMaxByteCount (int charCount);
override this.GetMaxByteCount : int -> int
Public Overrides Function GetMaxByteCount (charCount As Integer) As Integer
參數
- charCount
- Int32
要編碼的字元數。
傳回
編碼指定字元數所產生的最大位元組數。
例外狀況
發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)
-和-
範例
下列範例會 GetMaxByteCount 使用 方法來傳回編碼指定字元數所需的位元組數目上限。
using namespace System;
using namespace System::Text;
int main()
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
int charCount = 2;
int maxByteCount = utf8->GetMaxByteCount( charCount );
Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
int charCount = 2;
int maxByteCount = utf8.GetMaxByteCount(charCount);
Console.WriteLine(
"Maximum of {0} bytes needed to encode {1} characters.",
maxByteCount,
charCount
);
}
}
Imports System.Text
Class UTF8EncodingExample
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim charCount As Integer = 2
Dim maxByteCount As Integer = utf8.GetMaxByteCount(charCount)
Console.WriteLine( _
"Maximum of {0} bytes needed to encode {1} characters.", _
maxByteCount, _
charCount _
)
End Sub
End Class
備註
若要計算儲存結果位元組所需的 GetBytes 確切數位大小,請呼叫 GetByteCount 方法。 若要計算數位大小上限,請呼叫 GetMaxByteCount 方法。 方法 GetByteCount 通常會配置較少的記憶體,而 GetMaxByteCount 方法通常會更快執行。
GetMaxByteCount 是最差大小寫的數位,包括目前選取 EncoderFallback的最差大小寫。 如果選擇具有可能大型字串的後援, GetMaxByteCount 可以傳回大值。
在大部分情況下,此方法會傳回小型字串的合理數位。 對於大型字串,您可能必須在使用非常大的緩衝區和攔截錯誤之間選擇,在罕見的情況下,超過更合理的緩衝區。 您可能也想要考慮使用 GetByteCount 或 Encoder.Convert的不同方法。 例如,英文和許多其他語言的文字通常只需要一個UTF-8位元組來代表字元,但所傳回 GetMaxByteCount 的數位必須允許轉換字串的可能性,全都包含每個需要四個字節的字元。
GetMaxByteCount 與沒有關聯 GetChars。 如果您的應用程式需要與搭配 GetChars使用的類似函式,它應該使用 GetMaxCharCount。
注意
GetMaxByteCount(N)
不一定與 N* GetMaxByteCount(1)
相同值。