CharUnicodeInfo Classe

Définition

Récupère des informations sur un caractère Unicode. Cette classe ne peut pas être héritée.

public ref class CharUnicodeInfo abstract sealed
public ref class CharUnicodeInfo sealed
public static class CharUnicodeInfo
public sealed class CharUnicodeInfo
type CharUnicodeInfo = class
Public Class CharUnicodeInfo
Public NotInheritable Class CharUnicodeInfo
Héritage
CharUnicodeInfo

Exemples

L’exemple de code suivant montre les valeurs retournées par chaque méthode pour différents types de caractères.

using namespace System;
using namespace System::Globalization;
void PrintProperties( Char c );
int main()
{
   Console::WriteLine( "                                        c  Num   Dig   Dec   UnicodeCategory" );
   Console::Write( "U+0061 LATIN SMALL LETTER A            " );
   PrintProperties( L'a' );
   Console::Write( "U+0393 GREEK CAPITAL LETTER GAMMA      " );
   PrintProperties( L'\u0393' );
   Console::Write( "U+0039 DIGIT NINE                      " );
   PrintProperties( L'9' );
   Console::Write( "U+00B2 SUPERSCRIPT TWO                 " );
   PrintProperties( L'\u00B2' );
   Console::Write( "U+00BC VULGAR FRACTION ONE QUARTER     " );
   PrintProperties( L'\u00BC' );
   Console::Write( "U+0BEF TAMIL DIGIT NINE                " );
   PrintProperties( L'\u0BEF' );
   Console::Write( "U+0BF0 TAMIL NUMBER TEN                " );
   PrintProperties( L'\u0BF0' );
   Console::Write( "U+0F33 TIBETAN DIGIT HALF ZERO         " );
   PrintProperties( L'\u0F33' );
   Console::Write( "U+2788 CIRCLED SANS-SERIF DIGIT NINE   " );
   PrintProperties( L'\u2788' );
}

void PrintProperties( Char c )
{
   Console::Write( " {0,-3}", c );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetNumericValue( c ) );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetDigitValue( c ) );
   Console::Write( " {0,-5}", CharUnicodeInfo::GetDecimalDigitValue( c ) );
   Console::WriteLine( "{0}", CharUnicodeInfo::GetUnicodeCategory( c ) );
}

/*
This code produces the following output.  Some characters might not display at the console.

                                        c  Num   Dig   Dec   UnicodeCategory
U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

*/
using System;
using System.Globalization;

public class SamplesCharUnicodeInfo  {

   public static void Main()  {

      Console.WriteLine( "                                        c  Num   Dig   Dec   UnicodeCategory" );

      Console.Write( "U+0061 LATIN SMALL LETTER A            " );
      PrintProperties( 'a' );

      Console.Write( "U+0393 GREEK CAPITAL LETTER GAMMA      " );
      PrintProperties( '\u0393' );

      Console.Write( "U+0039 DIGIT NINE                      " );
      PrintProperties( '9' );

      Console.Write( "U+00B2 SUPERSCRIPT TWO                 " );
      PrintProperties( '\u00B2' );

      Console.Write( "U+00BC VULGAR FRACTION ONE QUARTER     " );
      PrintProperties( '\u00BC' );

      Console.Write( "U+0BEF TAMIL DIGIT NINE                " );
      PrintProperties( '\u0BEF' );

      Console.Write( "U+0BF0 TAMIL NUMBER TEN                " );
      PrintProperties( '\u0BF0' );

      Console.Write( "U+0F33 TIBETAN DIGIT HALF ZERO         " );
      PrintProperties( '\u0F33' );

      Console.Write( "U+2788 CIRCLED SANS-SERIF DIGIT NINE   " );
      PrintProperties( '\u2788' );
   }

   public static void PrintProperties( char c )  {
      Console.Write( " {0,-3}", c );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetNumericValue( c ) );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetDigitValue( c ) );
      Console.Write( " {0,-5}", CharUnicodeInfo.GetDecimalDigitValue( c ) );
      Console.WriteLine( "{0}", CharUnicodeInfo.GetUnicodeCategory( c ) );
   }
}


/*
This code produces the following output.  Some characters might not display at the console.

                                        c  Num   Dig   Dec   UnicodeCategory
U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

*/
Imports System.Globalization

Public Class SamplesCharUnicodeInfo

   Public Shared Sub Main()

      Console.WriteLine("                                        c  Num   Dig   Dec   UnicodeCategory")

      Console.Write("U+0061 LATIN SMALL LETTER A            ")
      PrintProperties("a"c)

      Console.Write("U+0393 GREEK CAPITAL LETTER GAMMA      ")
      PrintProperties(ChrW(&H0393))

      Console.Write("U+0039 DIGIT NINE                      ")
      PrintProperties("9"c)

      Console.Write("U+00B2 SUPERSCRIPT TWO                 ")
      PrintProperties(ChrW(&H00B2))

      Console.Write("U+00BC VULGAR FRACTION ONE QUARTER     ")
      PrintProperties(ChrW(&H00BC))

      Console.Write("U+0BEF TAMIL DIGIT NINE                ")
      PrintProperties(ChrW(&H0BEF))

      Console.Write("U+0BF0 TAMIL NUMBER TEN                ")
      PrintProperties(ChrW(&H0BF0))

      Console.Write("U+0F33 TIBETAN DIGIT HALF ZERO         ")
      PrintProperties(ChrW(&H0F33))

      Console.Write("U+2788 CIRCLED SANS-SERIF DIGIT NINE   ")
      PrintProperties(ChrW(&H2788))

   End Sub

   Public Shared Sub PrintProperties(c As Char)
      Console.Write(" {0,-3}", c)
      Console.Write(" {0,-5}", CharUnicodeInfo.GetNumericValue(c))
      Console.Write(" {0,-5}", CharUnicodeInfo.GetDigitValue(c))
      Console.Write(" {0,-5}", CharUnicodeInfo.GetDecimalDigitValue(c))
      Console.WriteLine("{0}", CharUnicodeInfo.GetUnicodeCategory(c))
   End Sub

End Class


'This code produces the following output.  Some characters might not display at the console.
'
'                                        c  Num   Dig   Dec   UnicodeCategory
'U+0061 LATIN SMALL LETTER A             a   -1    -1    -1   LowercaseLetter
'U+0393 GREEK CAPITAL LETTER GAMMA       Γ   -1    -1    -1   UppercaseLetter
'U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
'U+00B2 SUPERSCRIPT TWO                  ²   2     2     -1   OtherNumber
'U+00BC VULGAR FRACTION ONE QUARTER      ¼   0.25  -1    -1   OtherNumber
'U+0BEF TAMIL DIGIT NINE                 ௯   9     9     9    DecimalDigitNumber
'U+0BF0 TAMIL NUMBER TEN                 ௰   10    -1    -1   OtherNumber
'U+0F33 TIBETAN DIGIT HALF ZERO          ༳   -0.5  -1    -1   OtherNumber
'U+2788 CIRCLED SANS-SERIF DIGIT NINE    ➈   9     9     -1   OtherNumber

Remarques

La norme Unicode définit un certain nombre de catégories de caractères Unicode. Par exemple, un caractère peut être classé comme une lettre majuscule, une lettre minuscule, un nombre décimal, un numéro de lettre, un séparateur de paragraphe, un symbole mathématique ou un symbole monétaire. Votre application peut utiliser la catégorie de caractères pour régir les opérations basées sur des chaînes, telles que l’analyse ou l’extraction de sous-chaînes avec des expressions régulières. L’énumération UnicodeCategory définit les catégories de caractères possibles.

Utilisez la CharUnicodeInfo classe pour obtenir la UnicodeCategory valeur d’un caractère spécifique. La CharUnicodeInfo classe définit des méthodes qui retournent les valeurs de caractères Unicode suivantes :

  • Catégorie spécifique à laquelle appartient un caractère ou une paire de substituts. La valeur retournée est un membre de l’énumération UnicodeCategory .

  • Valeur numérique. S’applique uniquement aux caractères numériques, y compris les fractions, les indices, les exposants, les chiffres romains, les numérateurs monétaires, les nombres encerclés et les chiffres spécifiques au script.

  • Valeur numérique. S’applique aux caractères numériques qui peuvent être combinés avec d’autres caractères numériques pour représenter un nombre entier dans un système de numérotation.

  • Valeur de chiffre décimal. S’applique uniquement aux caractères qui représentent des chiffres décimaux dans le système décimal (base 10). Un chiffre décimal peut être l’un des dix chiffres, de zéro à neuf. Ces caractères sont membres de la UnicodeCategory.DecimalDigitNumber catégorie.

En outre, la CharUnicodeInfo classe est utilisée en interne par un certain nombre d’autres types et méthodes .NET qui s’appuient sur la classification de caractères. Elles incluent notamment :

  • Classe StringInfo , qui fonctionne avec des éléments textuels au lieu de caractères uniques dans une chaîne.

  • Surcharges de la Char.GetUnicodeCategory méthode, qui déterminent la catégorie à laquelle appartient un caractère ou une paire de substituts.

  • Classes de caractères reconnues par Regex, . Moteur d’expression régulière de NET.

Lorsque vous utilisez cette classe dans vos applications, gardez à l’esprit les considérations de programmation suivantes pour l’utilisation du Char type . Le type peut être difficile à utiliser et les chaînes sont généralement préférables pour représenter du contenu linguistique.

  • Un Char objet ne correspond pas toujours à un seul caractère. Bien que le Char type représente une valeur 16 bits unique, certains caractères (tels que les clusters graphèmes et les paires de substitution) se composent de deux unités de code UTF-16 ou plus. Pour plus d’informations, consultez « Char Objects and Unicode Characters » dans la String classe .

  • La notion de « caractère » est également flexible. Un caractère est souvent considéré comme un glyphe, mais de nombreux glyphes nécessitent plusieurs points de code. Par exemple, ä peut être représenté par deux points de code (« a » plus U+0308, qui est la diaerèse de combinaison), ou par un point de code unique (« ä » ou U+00A4). Certaines langues ont de nombreuses lettres, caractères et glyphes qui nécessitent plusieurs points de code, ce qui peut entraîner une confusion dans la représentation du contenu linguistique. Par exemple, il y a un ΰ (U+03B0, lettre minuscule grecque upsilon avec dialytika et tonos), mais il n’y a pas de lettre majuscule équivalente. Le fait d’avoir une valeur supérieure récupère simplement la valeur d’origine.

Notes pour les appelants

Les caractères reconnus et les catégories spécifiques auxquelles ils appartiennent sont définis par la norme Unicode et peuvent changer d’une version de la norme Unicode à une autre. La catégorisation des caractères dans une version particulière du .NET Framework est basée sur une seule version de la norme Unicode, quel que soit le système d’exploitation sous-jacent sur lequel le .NET Framework s’exécute. Le tableau suivant répertorie les versions de .NET Framework depuis .NET Framework 4 et les versions de la norme Unicode utilisées pour classifier les caractères.

Version du .NET Framework Version Unicode Standard
.NET Framework 4 5.0.0
.NET Framework 4.5 5.0.0
.NET Framework 4.5.1 5.0.0
.NET Framework 4.5.2 5.0.0
.NET Framework 4.6 6.3.0
.NET Framework 4.6.1 6.3.0
.NET Framework 4.6.2 8.0.0

Chaque version de la norme Unicode inclut des informations sur les modifications apportées à la base de données de caractères Unicode depuis la version précédente. La base de données de caractères Unicode est utilisée par la CharUnicodeInfo classe pour catégoriser les caractères.

Méthodes

GetDecimalDigitValue(Char)

Obtient la valeur de chiffre décimal du caractère numérique spécifié.

GetDecimalDigitValue(String, Int32)

Obtient la valeur de chiffre décimal du caractère numérique à l’index spécifié de la chaîne spécifiée.

GetDigitValue(Char)

Obtient la valeur de chiffre du caractère numérique spécifié.

GetDigitValue(String, Int32)

Obtient la valeur de chiffre du caractère numérique à l’index spécifié de la chaîne spécifiée.

GetNumericValue(Char)

Obtient la valeur numérique associée au caractère spécifié.

GetNumericValue(String, Int32)

Obtient la valeur numérique associée au caractère à l’index spécifié de la chaîne spécifiée.

GetUnicodeCategory(Char)

Obtient la catégorie Unicode du caractère spécifié.

GetUnicodeCategory(Int32)

Obtient la catégorie Unicode du caractère spécifié.

GetUnicodeCategory(String, Int32)

Obtient la catégorie Unicode du caractère à l’index spécifié de la chaîne spécifiée.

S’applique à

Voir aussi