CharUnicodeInfo CharUnicodeInfo CharUnicodeInfo CharUnicodeInfo Class

Определение

Получает сведения о символе Юникода.Retrieves information about a Unicode character. Этот класс не наследуется.This class cannot be inherited.

public ref class CharUnicodeInfo abstract sealed
public static class CharUnicodeInfo
type CharUnicodeInfo = class
Public Class CharUnicodeInfo
Наследование
CharUnicodeInfoCharUnicodeInfoCharUnicodeInfoCharUnicodeInfo

Примеры

В следующем примере кода показаны значения, возвращаемые каждым методом для различных типов символов.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 'Main

   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 'PrintProperties

End Class 'SamplesCharUnicodeInfo 


'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

Комментарии

Стандарт 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.

Примечания для тех, кто вызывает этот метод

Распознанные символы и конкретные категории, к которым они относятся, определяются стандартом Юникода и могут изменяться от одной версии стандарта Юникода к другой.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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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)] [Стандарт Unicode, версия 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.

Методы

GetDecimalDigitValue(Char) GetDecimalDigitValue(Char) GetDecimalDigitValue(Char) GetDecimalDigitValue(Char)

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

GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32) GetDecimalDigitValue(String, Int32)

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

GetDigitValue(Char) GetDigitValue(Char) GetDigitValue(Char) GetDigitValue(Char)

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

GetDigitValue(String, Int32) GetDigitValue(String, Int32) GetDigitValue(String, Int32) GetDigitValue(String, Int32)

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

GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char)

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

GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32)

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

GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char)

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

GetUnicodeCategory(Int32) GetUnicodeCategory(Int32) GetUnicodeCategory(Int32) GetUnicodeCategory(Int32)
GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32)

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

Применяется к

Дополнительно