UTF32Encoding.GetMaxByteCount メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > UTF32Encoding.GetMaxByteCount メソッドの意味・解説 

UTF32Encoding.GetMaxByteCount メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

指定した文字数エンコードすることによって生成される最大バイト数を計算します

名前空間: System.Text
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Overrides Function
 GetMaxByteCount ( _
    charCount As Integer _
) As Integer
Dim instance As UTF32Encoding
Dim charCount As Integer
Dim returnValue As Integer

returnValue = instance.GetMaxByteCount(charCount)
public override int GetMaxByteCount (
    int charCount
)
public:
virtual int GetMaxByteCount (
    int charCount
) override
public int GetMaxByteCount (
    int charCount
)
public override function GetMaxByteCount (
    charCount : int
) : int

パラメータ

charCount

エンコードする文字数

戻り値
指定した文字数エンコードすることによって生成される最大バイト数。

例外例外
例外種類条件

ArgumentOutOfRangeException

charCount が 0 未満です。

または

結果文字数が、int として返すことのできる最大数を超えてます。

解説解説

GetBytes が生成したバイト格納するために必要な正確な配列サイズ計算するには、GetByteCount を使用します最大配列サイズ計算するには、GetMaxByteCount使用します通常GetMaxByteCount メソッドの方が高速実行されるのに対しGetByteCount メソッドの方が使用メモリ少なくて済みます

使用例使用例

次のコード例は、文字列エンコード必要なバイト数を確認し文字列実際にエンコードして、結果バイト表示します

Imports System
Imports System.Text
Imports Microsoft.VisualBasic

Public Class SamplesUTF32Encoding   

   Public Shared Sub Main()

      ' The characters to encode:
      '    Latin Small Letter Z (U+007A)
      '    Latin Small Letter A (U+0061)
      '    Combining Breve (U+0306)
      '    Latin Small Letter AE With Acute (U+01FD)
      '    Greek Small Letter Beta (U+03B2)
      '    a high-surrogate value (U+D8FF)
      '    a low-surrogate value (U+DCFF)
      Dim myStr As String
 = "za" & ChrW(&H0306) & ChrW(&H01FD)
 & ChrW(&H03B2) & ChrW(&HD8FF) & ChrW(&HDCFF)

      ' Create instances of different encodings.
      Dim u7 As New UTF7Encoding()
      Dim u8Nobom As New
 UTF8Encoding(False, True)
      Dim u8Bom As New UTF8Encoding(True,
 True)
      Dim u32Nobom As New
 UTF32Encoding(False, False, True)
      Dim u32Bom As New
 UTF32Encoding(False, True, True)

      ' Get the byte counts and the bytes.
      PrintCountsAndBytes(myStr, u7)
      PrintCountsAndBytes(myStr, u8Nobom)
      PrintCountsAndBytes(myStr, u8Bom)
      PrintCountsAndBytes(myStr, u32Nobom)
      PrintCountsAndBytes(myStr, u32Bom)

   End Sub 'Main


   Public Shared Sub PrintCountsAndBytes(s
 As String, enc As Encoding)

      ' Display the name of the encoding used.
      Console.Write("{0,-25} :", enc.ToString())

      ' Display the exact byte count.
      Dim iBC As Integer
 = enc.GetByteCount(s)
      Console.Write(" {0,-3}", iBC)

      ' Display the maximum byte count.
      Dim iMBC As Integer
 = enc.GetMaxByteCount(s.Length)
      Console.Write(" {0,-3} :", iMBC)

      ' Get the byte order mark, if any.
      Dim preamble As Byte()
 = enc.GetPreamble()

      ' Combine the preamble and the encoded bytes.
      ' NOTE: In Visual Basic, arrays contain one extra element by default.
      '       The following line creates an array with the exact number
 of elements required.
      Dim bytes(preamble.Length + iBC - 1) As
 Byte
      Array.Copy(preamble, bytes, preamble.Length)
      enc.GetBytes(s, 0, s.Length, bytes, preamble.Length)

      ' Display all the encoded bytes.
      PrintHexBytes(bytes)

   End Sub 'PrintCountsAndBytes


   Public Shared Sub PrintHexBytes(bytes()
 As Byte)

      If bytes Is Nothing
 OrElse bytes.Length = 0 Then
         Console.WriteLine("<none>")
      Else
         Dim i As Integer
         For i = 0 To bytes.Length - 1
            Console.Write("{0:X2} ", bytes(i))
         Next i
         Console.WriteLine()
      End If

   End Sub 'PrintHexBytes 

End Class 'SamplesUTF32Encoding


'This code produces the following output.
'
'System.Text.UTF7Encoding  : 18  23  :7A 61 2B 41 77 59 42 2F 51 4F
 79 32 50 2F 63 2F 77 2D
'System.Text.UTF8Encoding  : 12  24  :7A 61 CC 86 C7 BD CE B2 F1 8F
 B3 BF
'System.Text.UTF8Encoding  : 12  24  :EF BB BF 7A 61 CC 86 C7 BD CE
 B2 F1 8F B3 BF
'System.Text.UTF32Encoding : 24  28  :7A 00 00 00 61 00 00 00 06 03
 00 00 FD 01 00 00 B2 03 00 00 FF FC 04 00
'System.Text.UTF32Encoding : 24  28  :FF FE 00 00 7A 00 00 00 61 00
 00 00 06 03 00 00 FD 01 00 00 B2 03 00 00 FF FC 04 00

using System;
using System.Text;

public class SamplesUTF32Encoding  {

   public static void Main()
  {

      // The characters to encode:
      //    Latin Small Letter Z (U+007A)
      //    Latin Small Letter A (U+0061)
      //    Combining Breve (U+0306)
      //    Latin Small Letter AE With Acute (U+01FD)
      //    Greek Small Letter Beta (U+03B2)
      //    a high-surrogate value (U+D8FF)
      //    a low-surrogate value (U+DCFF)
      String myStr = "za\u0306\u01FD\u03B2\uD8FF\uDCFF";

      // Create instances of different encodings.
      UTF7Encoding  u7       = new UTF7Encoding();
      UTF8Encoding  u8Nobom  = new UTF8Encoding( false,
 true );
      UTF8Encoding  u8Bom    = new UTF8Encoding( true,
  true );
      UTF32Encoding u32Nobom = new UTF32Encoding( false,
 false, true );
      UTF32Encoding u32Bom   = new UTF32Encoding( false,
 true,  true );

      // Get the byte counts and the bytes.
      PrintCountsAndBytes( myStr, u7 );
      PrintCountsAndBytes( myStr, u8Nobom );
      PrintCountsAndBytes( myStr, u8Bom );
      PrintCountsAndBytes( myStr, u32Nobom );
      PrintCountsAndBytes( myStr, u32Bom );

   }


   public static void PrintCountsAndBytes(
 String s, Encoding enc )  {

      // Display the name of the encoding used.
      Console.Write( "{0,-25} :", enc.ToString() );

      // Display the exact byte count.
      int iBC  = enc.GetByteCount( s );
      Console.Write( " {0,-3}", iBC );

      // Display the maximum byte count.
      int iMBC = enc.GetMaxByteCount( s.Length );
      Console.Write( " {0,-3} :", iMBC );

      // Get the byte order mark, if any.
      byte[] preamble = enc.GetPreamble();

      // Combine the preamble and the encoded bytes.
      byte[] bytes = new byte[preamble.Length + iBC];
      Array.Copy( preamble, bytes, preamble.Length );
      enc.GetBytes( s, 0, s.Length, bytes, preamble.Length );

      // Display all the encoded bytes.
      PrintHexBytes( bytes );

   }


   public static void PrintHexBytes(
 byte[] bytes )  {

      if (( bytes == null ) || ( bytes.Length
 == 0 ))
         Console.WriteLine( "<none>" );
      else  {
         for ( int i = 0; i < bytes.Length;
 i++ )
            Console.Write( "{0:X2} ", bytes[i] );
         Console.WriteLine();
      }

   }

}


/* 
This code produces the following output.

System.Text.UTF7Encoding  : 18  23  :7A 61 2B 41 77 59 42 2F 51 4F 79 32 50 2F 63
 2F 77 2D
System.Text.UTF8Encoding  : 12  24  :7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UTF8Encoding  : 12  24  :EF BB BF 7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UTF32Encoding : 24  28  :7A 00 00 00 61 00 00 00 06 03 00 00 FD 01 00
 00 B2 03 00 00 FF FC 04 00
System.Text.UTF32Encoding : 24  28  :FF FE 00 00 7A 00 00 00 61 00 00 00 06 03 00
 00 FD 01 00 00 B2 03 00 00 FF FC 04 00

*/

using namespace System;
using namespace System::Text;
void PrintCountsAndBytes( String^ s, Encoding^ enc );
void PrintHexBytes( array<Byte>^bytes );
int main()
{
   
   // The characters to encode:
   //    Latin Small Letter Z (U+007A)
   //    Latin Small Letter A (U+0061)
   //    Combining Breve (U+0306)
   //    Latin Small Letter AE With Acute (U+01FD)
   //    Greek Small Letter Beta (U+03B2)
   //    a high-surrogate value (U+D8FF)
   //    a low-surrogate value (U+DCFF)
   String^ myStr = L"za\u0306\u01FD\u03B2\xD8FF\xDCFF";
   
   // Create instances of different encodings.
   UTF7Encoding^ u7 = gcnew UTF7Encoding;
   UTF8Encoding^ u8Nobom = gcnew UTF8Encoding( false,true
 );
   UTF8Encoding^ u8Bom = gcnew UTF8Encoding( true,true
 );
   UTF32Encoding ^ u32Nobom = gcnew UTF32Encoding( false,false,true
 );
   UTF32Encoding ^ u32Bom = gcnew UTF32Encoding( false,true,true
 );
   
   // Get the byte counts and the bytes.
   PrintCountsAndBytes( myStr, u7 );
   PrintCountsAndBytes( myStr, u8Nobom );
   PrintCountsAndBytes( myStr, u8Bom );
   PrintCountsAndBytes( myStr, u32Nobom );
   PrintCountsAndBytes( myStr, u32Bom );
}

void PrintCountsAndBytes( String^ s, Encoding^ enc )
{
   
   // Display the name of the encoding used.
   Console::Write( "{0,-25} :", enc );
   
   // Display the exact byte count.
   int iBC = enc->GetByteCount( s );
   Console::Write( " {0,-3}", iBC );
   
   // Display the maximum byte count.
   int iMBC = enc->GetMaxByteCount( s->Length );
   Console::Write( " {0,-3} :", iMBC );
   
   // Get the byte order mark, if any.
   array<Byte>^preamble = enc->GetPreamble();
   
   // Combine the preamble and the encoded bytes.
   array<Byte>^bytes = gcnew array<Byte>(preamble->Length + iBC);
   Array::Copy( preamble, bytes, preamble->Length );
   enc->GetBytes( s, 0, s->Length, bytes, preamble->Length );
   
   // Display all the encoded bytes.
   PrintHexBytes( bytes );
}

void PrintHexBytes( array<Byte>^bytes )
{
   if ( (bytes == nullptr) || (bytes->Length == 0) )
      Console::WriteLine( "<none>" );
   else
   {
      for ( int i = 0; i < bytes->Length;
 i++ )
         Console::Write( "{0:X2} ", bytes[ i ] );
      Console::WriteLine();
   }
}

/* 
This code produces the following output.

System.Text.UTF7Encoding  : 18  23  :7A 61 2B 41 77 59 42 2F 51 4F 79 32 50 2F 63
 2F 77 2D
System.Text.UTF8Encoding  : 12  24  :7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UTF8Encoding  : 12  24  :EF BB BF 7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UTF32Encoding : 24  28  :7A 00 00 00 61 00 00 00 06 03 00 00 FD 01 00
 00 B2 03 00 00 FF FC 04 00
System.Text.UTF32Encoding : 24  28  :FF FE 00 00 7A 00 00 00 61 00 00 00 06 03 00
 00 FD 01 00 00 B2 03 00 00 FF FC 04 00

*/
import System.*;
import System.Text.*;

public class SamplesUTF32Encoding
{
    public static void main(String[]
 args)
    {
        // The characters to encode:
        //    Latin Small Letter Z (U+007A)
        //    Latin Small Letter A (U+0061)
        //    Combining Breve (U+0306)
        //    Latin Small Letter AE With Acute (U+01FD)
        //    Greek Small Letter Beta (U+03B2)
        //    a high-surrogate value (U+D8FF)
        //    a low-surrogate value (U+DCFF)
        String myStr = "za\u0306\u01FD\u03B2\uD8FF\uDCFF";

        // Create instances of different encodings.
        UTF7Encoding u7 = new UTF7Encoding();
        UTF8Encoding u8Nobom = new UTF8Encoding(false,
 true);
        UTF8Encoding u8Bom = new UTF8Encoding(true,
 true);
        UTF32Encoding u32Nobom = new UTF32Encoding(false,
 false, true);
        UTF32Encoding u32Bom = new UTF32Encoding(false,
 true, true);

        // Get the byte counts and the bytes.
        PrintCountsAndBytes(myStr, u7);
        PrintCountsAndBytes(myStr, u8Nobom);
        PrintCountsAndBytes(myStr, u8Bom);
        PrintCountsAndBytes(myStr, u32Nobom);
        PrintCountsAndBytes(myStr, u32Bom);
    } //main
   
    public static void PrintCountsAndBytes(String
 s, Encoding enc)
    {
        // Display the name of the encoding used.
        Console.Write("{0,-25} :", enc.ToString());

        // Display the exact byte count.
        int iBC = enc.GetByteCount(s);
        Console.Write(" {0,-3}", String.valueOf(iBC));

        // Display the maximum byte count.
        int iMBC = enc.GetMaxByteCount(s.get_Length());
        Console.Write(" {0,-3} :", String.valueOf(iMBC));

        // Get the byte order mark, if any.
        ubyte preamble[] = enc.GetPreamble();

        // Combine the preamble and the encoded bytes.
        ubyte bytes[] = new ubyte[preamble.length + iBC];
        Array.Copy(preamble, bytes, preamble.length);
        enc.GetBytes(s, 0, s.get_Length(), bytes, preamble.length);

        // Display all the encoded bytes.
        PrintHexBytes(bytes);
    } //PrintCountsAndBytes
 
    public static void PrintHexBytes(ubyte
 bytes[])
    {
        if(bytes == null || bytes.length ==
 0) {
            Console.WriteLine("<none>");
        }
        else {
            for(int i = 0; i < bytes.length;
 i++) {
                Console.Write("{0:X2} ", 
                    ((System.Byte)bytes[i]).ToString("X2"));
            }
            Console.WriteLine();
        }
    } //PrintHexBytes
} //SamplesUTF32Encoding

/* 
This code produces the following output.

System.Text.UTF7Encoding  : 18  23  :7A 61 2B 41 77 59 42 2F 51 4F 79 32 50
 2F 63 2F 77 2D
System.Text.UTF8Encoding  : 12  24  :7A 61 CC 86 C7 BD CE B2 F1 8F B3 BF
System.Text.UTF8Encoding  : 12  24  :EF BB BF 7A 61 CC 86 C7 BD CE B2 F1
 8F B3 BF
System.Text.UTF32Encoding : 24  28  :7A 00 00 00 61 00 00 00 06 03 00 00
 FD 01 00 00 B2 03 00 00 FF FC 04 00
System.Text.UTF32Encoding : 24  28  :FF FE 00 00 7A 00 00 00 61 00 00 00
 06 03 00 00 FD 01 00 00 B2 03 00 00 FF FC 04 00

*/

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
UTF32Encoding クラス
UTF32Encoding メンバ
System.Text 名前空間
GetBytes
GetByteCount
GetEncoder



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

UTF32Encoding.GetMaxByteCount メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



UTF32Encoding.GetMaxByteCount メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS