CharUnicodeInfo Class

Definition

Извлекает сведения о символе Юникода.Retrieves information about a Unicode character. Этот класс не может быть унаследован.This class cannot be inherited.

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
Inheritance
CharUnicodeInfo

Examples

В следующем примере кода показаны значения, возвращаемые каждым методом для различных типов символов.The following code example shows the values returned by each method for different types of characters.

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       \u0393   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   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       \u0393   -1    -1    -1   UppercaseLetter
U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   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       \u0393   -1    -1    -1   UppercaseLetter
'U+0039 DIGIT NINE                       9   9     9     9    DecimalDigitNumber
'U+00B2 SUPERSCRIPT TWO                  \u00B2   2     2     2    OtherNumber
'U+00BC VULGAR FRACTION ONE QUARTER      \u00BC   0.25  -1    -1   OtherNumber
'U+0BEF TAMIL DIGIT NINE                 \u0BEF   9     9     9    DecimalDigitNumber
'U+0BF0 TAMIL NUMBER TEN                 \u0BF0   10    -1    -1   OtherNumber
'U+0F33 TIBETAN DIGIT HALF ZERO          \u0F33   -0.5  -1    -1   OtherNumber
'U+2788 CIRCLED SANS-SERIF DIGIT NINE    \u2788   9     9     -1   OtherNumber

Remarks

Стандарт Unicode определяет несколько категорий символов Юникода.The Unicode Standard defines a number of Unicode character categories. Например, символ может быть классифицирован как прописная буква, строчная буква, десятичное число, буква, разделитель абзаца, математический символ или символ валюты.For example, a character might be categorized as an uppercase letter, a lowercase letter, a decimal digit number, a letter number, a paragraph separator, a math symbol, or a currency symbol. Приложение может использовать категорию символов для управления операциями на основе строк, таких как синтаксический анализ или извлечение подстроки с регулярными выражениями.Your application can use the character category to govern string-based operations, such as parsing or extracting substring with regular expressions. Перечисление UnicodeCategory определяет возможные категории символов.The UnicodeCategory enumeration defines the possible character categories.

Используйте класс CharUnicodeInfo, чтобы получить значение UnicodeCategory для определенного символа.You use the CharUnicodeInfo class to obtain the UnicodeCategory value for a specific character. Класс CharUnicodeInfo определяет методы, которые возвращают следующие значения символов Юникода:The CharUnicodeInfo class defines methods that return the following Unicode character values:

  • Конкретная категория, к которой принадлежит символ или суррогатная пара.The specific category to which a character or surrogate pair belongs. Возвращаемое значение является членом перечисления UnicodeCategory.The value returned is a member of the UnicodeCategory enumeration.

  • Числовое значение.Numeric value. Применяется только к числовым символам, включая дроби, подстрочные и надстрочные знаки, римские цифры, числители валют, енЦирклед числа и цифры для конкретного сценария.Applies only to numeric characters, including fractions, subscripts, superscripts, Roman numerals, currency numerators, encircled numbers, and script-specific digits.

  • Цифровое значение.Digit value. Применяется к числовым символам, которые могут быть объединены с другими числовыми символами для представления целого числа в системе нумерации.Applies to numeric characters that can be combined with other numeric characters to represent a whole number in a numbering system.

  • Десятичное цифровое значение.Decimal digit value. Применяется только к символам, представляющим десятичные цифры в системе счисления (с основанием 10).Applies only to characters that represent decimal digits in the decimal (base 10) system. Десятичная цифра может быть одной из десяти цифр, от нуля до девяти.A decimal digit can be one of ten digits, from zero through nine. Эти символы являются членами категории UnicodeCategory.DecimalDigitNumber.These characters are members of the UnicodeCategory.DecimalDigitNumber category.

Кроме того, класс CharUnicodeInfo внутренне используется несколькими другими .NET Framework типами и методами, которые используют классификацию символов.In addition, the CharUnicodeInfo class is used internally by a number of other .NET Framework types and methods that rely on character classification. К ним относятся следующие объекты.These include:

  • Класс StringInfo, который работает с текстовыми элементами, а не с одиночными символами в строке.The StringInfo class, which works with textual elements instead of single characters in a string.

  • Перегрузки метода Char.GetUnicodeCategory, которые определяют категорию, к которой принадлежит символ или суррогатная пара.The overloads of the Char.GetUnicodeCategory method, which determine the category to which a character or surrogate pair belongs.

  • Классы символов , распознаваемые Regex, обработчик регулярных выражений .NET Framework.The character classes recognized by Regex, the .NET Framework's regular expression engine.

При использовании этого класса в приложениях учитывайте следующие аспекты программирования при использовании типа Char.When using this class in your applications, keep in mind the following programming considerations for using the Char type. Тип может быть трудно использовать, а строки, как правило, являются предпочтительными для представления лингвистического содержимого.The type can be difficult to use, and strings are generally preferable for representing linguistic content.

  • Объект Char не всегда соответствует одному символу.A Char object does not always correspond to a single character. Хотя тип Char представляет одно 16-разрядное значение, некоторые символы (например, графеменые и суррогатные пары) состоят из двух или более единиц кода UTF-16.Although the Char type represents a single 16-bit value, some characters (such as grapheme clusters and surrogate pairs) consist of two or more UTF-16 code units. Дополнительные сведения см. в разделе "объекты char и символы Юникода" в классе String.For more information, see "Char Objects and Unicode Characters" in the String class.

  • Понятие "символ" также является гибким.The notion of a "character" is also flexible. Символ часто рассматривается как глиф, но для многих глифов требуется несколько кодовых позиций.A character is often thought of as a glyph, but many glyphs require multiple code points. Например, ä может быть представлен двумя кодовыми точками ("a" плюс U + 0308, который является объединяющей трем) или одной кодовой точкой ("ä" или U + 00A4).For example, ä can be represented either by two code points ("a" plus U+0308, which is the combining diaeresis), or by a single code point ("ä" or U+00A4). Некоторые языки имеют много букв, символов и глифов, для которых требуется несколько кодовых точек, что может привести к путанице в лингвистическом представлении содержимого.Some languages have many letters, characters, and glyphs that require multiple code points, which can cause confusion in linguistic content representation. Например, существует ΰ (U + 03B0, греческая строчная буква ипсилон с диалитика и Тонос), но эквивалентная прописная буква отсутствует.For example, there is a ΰ (U+03B0, Greek small letter upsilon with dialytika and tonos), but there is no equivalent capital letter. В верхнем регистре такое значение просто извлекает исходное значение.Uppercasing such a value simply retrieves the original value.

Notes to Callers

Распознанные символы и конкретные категории, к которым они относятся, определяются стандартом Юникода и могут изменяться от одной версии стандарта Юникода к другой.Recognized characters and the specific categories to which they belong are defined by the Unicode standard and can change from one version of the Unicode Standard to another. Классификация символов в определенной версии .NET Framework основана на единственной версии стандарта Юникода независимо от базовой операционной системы, в которой выполняется .NET Framework.Categorization of characters in a particular version of the .NET Framework is based on a single version of the Unicode Standard regardless of the underlying operating system on which the .NET Framework is running. В следующей таблице перечислены версии .NET Framework, начиная с .NET Framework 4.NET Framework 4 и версий стандарта Юникода, используемых для классификации символов.The following table lists versions of the .NET Framework since the .NET Framework 4.NET Framework 4 and the versions of the Unicode Standard used to classify characters.

Версия платформы .NET Framework.NET Framework version Версия стандарта ЮникодVersion of the Unicode Standard
[!INCLUDE[net_v40_long](~/includes/net-v40-long-md.md)] [Стандарт Юникода версии 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v45](~/includes/net-v45-md.md)] [Стандарт Юникода версии 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v451](~/includes/net-v451-md.md)] [Стандарт Юникода версии 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v452](~/includes/net-v452-md.md)] [Стандарт Юникода версии 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/) [The Unicode Standard, Version 5.0.0](https://www.unicode.org/versions/Unicode5.0.0/)
[!INCLUDE[net_v46](~/includes/net-v46-md.md)] [Стандарт Юникода версии 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/) [The Unicode Standard, Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)
[!INCLUDE[net_v461](~/includes/net-v461-md.md)] [Стандарт Юникода версии 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/) [The Unicode Standard, Version 6.3.0](https://www.unicode.org/versions/Unicode6.3.0/)
[!INCLUDE[net_v462](~/includes/net-v462-md.md)] [Стандарт Юникода версии 8.0.0](https://www.unicode.org/versions/Unicode8.0.0/) [The Unicode Standard, Version 8.0.0](https://www.unicode.org/versions/Unicode8.0.0/)

Каждая версия стандарта Unicode содержит сведения об изменениях в базе данных символов Юникода с момента предыдущей версии.Each version of the Unicode standard includes information on changes to the Unicode character database since the previous version. База данных символов Юникода используется классом CharUnicodeInfo для категоризации символов.The Unicode character database is used by the CharUnicodeInfo class for categorizing characters.

Methods

GetDecimalDigitValue(Char)

Получает десятичное цифровое значение указанного числового символа.Gets the decimal digit value of the specified numeric character.

GetDecimalDigitValue(String, Int32)

Получает десятичное цифровое значение числового символа на месте указанного индекса указанной строки.Gets the decimal digit value of the numeric character at the specified index of the specified string.

GetDigitValue(Char)

Получает цифровое значение указанного числового символа.Gets the digit value of the specified numeric character.

GetDigitValue(String, Int32)

Получает цифровое значение числового символа на месте указанного индекса указанной строки.Gets the digit value of the numeric character at the specified index of the specified string.

GetNumericValue(Char)

Получает числовое значение, связанное с указанным символом.Gets the numeric value associated with the specified character.

GetNumericValue(String, Int32)

Получает числовое значение, связанное с символом, расположенным по указанному индексу в указанной строке.Gets the numeric value associated with the character at the specified index of the specified string.

GetUnicodeCategory(Char)

Получает категорию Юникода, относящуюся к указанному символу.Gets the Unicode category of the specified character.

GetUnicodeCategory(Int32)

Получает категорию Юникода, относящуюся к указанному символу.Gets the Unicode category of the specified character.

GetUnicodeCategory(String, Int32)

Получает категорию Юникода, относящуюся к символу, расположенному по заданному индексу в заданной строке.Gets the Unicode category of the character at the specified index of the specified string.

Applies to

See also