NormalizationForm 列挙体とは? わかりやすく解説

NormalizationForm 列挙体

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

実行する正規化タイプ定義します

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

<ComVisibleAttribute(True)> _
Public Enumeration NormalizationForm
Dim instance As NormalizationForm
[ComVisibleAttribute(true)] 
public enum NormalizationForm
[ComVisibleAttribute(true)] 
public enum class NormalizationForm
/** @attribute ComVisibleAttribute(true) */ 
public enum NormalizationForm
ComVisibleAttribute(true) 
public enum NormalizationForm
メンバメンバ
解説解説

一部Unicode シーケンスは、同じ文字表しているために、同一であると見なされます。たとえば、次のシーケンスはいずれも "ắ" を表しているため、同一であると見なされます

  • "\u1EAF"

  • "\u0103\u0301"

  • "\u0061\u0306\u0301"

しかし、これらのシーケンスには異なUnicode コード値が含まれているため、序数比較 (バイナリ比較) では別のものと見なされますこのため序数比較実行する前に、これらの文字列正規化 (基本要素分解) する必要があります

Unicode の各複合文字は、1 つ上の文字構成されるより基本的なシーケンス割り当てられています。分解プロセスでは、文字列含まれる複合文字を、より基本的な割り当て置き換えます。完全分解とは、文字列含まれる文字それ以上分解できなくなるまで、この置き換え再帰的実行することを指します

Unicode には、互換分解標準分解という 2 つのタイプ分解あります互換分解では、書式情報失われる場合あります一方互換分解サブセットである標準分解では、書式情報保持されます。

2 つ文字セットを完全標準分解した結果が同じである場合、これらの文字セット標準等価性があると見なされます同様に2 つ文字セット完全互換分解した結果が同じである場合、これらの文字セット互換等価性があると見なされます

正規化分解、および等価性詳細については、www.unicode.org の「The Unicode Standard」を参照してください

使用例使用例

次のコード例では、異な正規化方式使用してエンコーディングを常に正規化するかどうか指定してます。

Imports System
Imports System.Text

Public Class SamplesASCIIEncoding

   Public Shared Sub Main()

      ' Display the value of IsAlwaysNormalized for every normalization
 form.
      Console.WriteLine("{0,30} FormC   FormKC  FormD   FormKD",
 "")
      PrintNormalization(New UTF32Encoding(True,
 True, True))
      PrintNormalization(New UnicodeEncoding(True,
 True, True))
      PrintNormalization(New UTF8Encoding(True,
 True))
      PrintNormalization(New UTF7Encoding(True))
      PrintNormalization(New ASCIIEncoding())

   End Sub 'Main

   Public Shared Sub PrintNormalization(enc
 As Encoding)
      Console.Write("{0,-30} ", enc.ToString())
      Console.Write("{0,-8}", enc.IsAlwaysNormalized(NormalizationForm.FormC))
      Console.Write("{0,-8}", enc.IsAlwaysNormalized(NormalizationForm.FormKC))
      Console.Write("{0,-8}", enc.IsAlwaysNormalized(NormalizationForm.FormD))
      Console.WriteLine("{0,-8}", enc.IsAlwaysNormalized(NormalizationForm.FormKD))
   End Sub 'PrintNormalization

End Class 'SamplesASCIIEncoding
 


'This code produces the following output.
'
'                               FormC   FormKC  FormD   FormKD
'System.Text.UTF32Encoding      False   False   False   False
'System.Text.UnicodeEncoding    False   False   False   False
'System.Text.UTF8Encoding       False   False   False   False
'System.Text.UTF7Encoding       False   False   False   False
'System.Text.ASCIIEncoding      True    True    True    True

using System;
using System.Text;

public class SamplesASCIIEncoding  {

   public static void Main()
  {

      // Display the value of IsAlwaysNormalized for every normalization
 form.
      Console.WriteLine( "{0,30} FormC   FormKC  FormD   FormKD", ""
 );
      PrintNormalization( new UTF32Encoding( true,
 true, true ) );
      PrintNormalization( new UnicodeEncoding( true,
 true, true ) );
      PrintNormalization( new UTF8Encoding( true,
 true ) );
      PrintNormalization( new UTF7Encoding( true
 ) );
      PrintNormalization( new ASCIIEncoding() );

   }

   public static void PrintNormalization(
 Encoding enc )  {
      Console.Write( "{0,-30} ", enc.ToString() );
      Console.Write( "{0,-8}", enc.IsAlwaysNormalized( NormalizationForm.FormC
 ) );
      Console.Write( "{0,-8}", enc.IsAlwaysNormalized( NormalizationForm.FormKC
 ) );
      Console.Write( "{0,-8}", enc.IsAlwaysNormalized( NormalizationForm.FormD
 ) );
      Console.WriteLine( "{0,-8}", enc.IsAlwaysNormalized( NormalizationForm.FormKD
 ) );
   }


}


/* 
This code produces the following output.

                               FormC   FormKC  FormD   FormKD
System.Text.UTF32Encoding      False   False   False   False
System.Text.UnicodeEncoding    False   False   False   False
System.Text.UTF8Encoding       False   False   False   False
System.Text.UTF7Encoding       False   False   False   False
System.Text.ASCIIEncoding      True    True    True    True

*/

using namespace System;
using namespace System::Text;
void PrintNormalization( Encoding^ enc );
int main()
{
   
   // Display the value of IsAlwaysNormalized for every normalization
 form.
   Console::WriteLine( "{0,30} FormC   FormKC  FormD   FormKD", ""
 );
   PrintNormalization( gcnew UTF32Encoding( true,true,true
 ) );
   PrintNormalization( gcnew UnicodeEncoding( true,true,true
 ) );
   PrintNormalization( gcnew UTF8Encoding( true,true
 ) );
   PrintNormalization( gcnew UTF7Encoding( true ) );
   PrintNormalization( gcnew ASCIIEncoding );
}

void PrintNormalization( Encoding^ enc )
{
   Console::Write( "{0,-30} ", enc );
   Console::Write( "{0,-8}", enc->IsAlwaysNormalized( NormalizationForm::FormC
 ) );
   Console::Write( "{0,-8}", enc->IsAlwaysNormalized( NormalizationForm::FormKC
 ) );
   Console::Write( "{0,-8}", enc->IsAlwaysNormalized( NormalizationForm::FormD
 ) );
   Console::WriteLine( "{0,-8}", enc->IsAlwaysNormalized( NormalizationForm::FormKD
 ) );
}

/* 
This code produces the following output.

                               FormC   FormKC  FormD   FormKD
System.Text.UTF32Encoding      False   False   False   False
System.Text.UnicodeEncoding    False   False   False   False
System.Text.UTF8Encoding       False   False   False   False
System.Text.UTF7Encoding       False   False   False   False
System.Text.ASCIIEncoding      True    True    True    True

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

public class SamplesASCIIEncoding
{
    public static void main(String[]
 args)
    {
        // Display the value of IsAlwaysNormalized 
        //for every normalization form.
        Console.WriteLine("{0,30} FormC   FormKC  FormD   FormKD", "");
        PrintNormalization(new UTF32Encoding(true,
 true, true));
        PrintNormalization(new UnicodeEncoding(true,
 true, true));
        PrintNormalization(new UTF8Encoding(true,
 true));
        PrintNormalization(new UTF7Encoding(true));
        PrintNormalization(new ASCIIEncoding());
    } //main

    public static void PrintNormalization(Encoding
 enc)
    {
        Console.Write("{0,-30} ", enc.ToString());
        Console.Write("{0,-8}",
        System.Convert.ToString(enc.IsAlwaysNormalized(NormalizationForm.FormC)));
        Console.Write("{0,-8}", 
        System.Convert.ToString(enc.IsAlwaysNormalized(NormalizationForm.FormKC)));
        Console.Write("{0,-8}", 
        System.Convert.ToString(enc.IsAlwaysNormalized(NormalizationForm.FormD)));
        Console.WriteLine("{0,-8}", 
        System.Convert.ToString(enc.IsAlwaysNormalized(NormalizationForm.FormKD)));
    } //PrintNormalization
} //SamplesASCIIEncoding

/* 
This code produces the following output.

                               FormC   FormKC  FormD   FormKD
System.Text.UTF32Encoding      False   False   False   False
System.Text.UnicodeEncoding    False   False   False   False
System.Text.UTF8Encoding       False   False   False   False
System.Text.UTF7Encoding       False   False   False   False
System.Text.ASCIIEncoding      True    True    True    True

*/

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からNormalizationForm 列挙体を検索した結果を表示しています。
Weblioに収録されているすべての辞書からNormalizationForm 列挙体を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からNormalizationForm 列挙体 を検索

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

辞書ショートカット

すべての辞書の索引

「NormalizationForm 列挙体」の関連用語

NormalizationForm 列挙体のお隣キーワード
検索ランキング

   

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



NormalizationForm 列挙体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS