CharUnicodeInfo Třída

Definice

Načte informace o znaku Unicode.Retrieves information about a Unicode character. Tuto třídu nelze zdědit.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
Dědičnost
CharUnicodeInfo

Příklady

Následující příklad kódu ukazuje hodnoty vracené jednotlivými metodami pro různé typy znaků.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

Poznámky

Standard Unicode definuje počet kategorií znaků Unicode.The Unicode Standard defines a number of Unicode character categories. Například znak může být zařazen jako velké písmeno, malé písmeno, číslo desítkové číslice, číslo písmen, oddělovač odstavců, matematický symbol nebo symbol měny.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. Vaše aplikace může používat kategorii znaků k řízení operací založených na řetězci, jako je například analýza nebo extrakce podřetězců pomocí regulárních výrazů.Your application can use the character category to govern string-based operations, such as parsing or extracting substring with regular expressions. Výčet UnicodeCategory definuje možné kategorie znaků.The UnicodeCategory enumeration defines the possible character categories.

Třídu CharUnicodeInfo lze použít k získání UnicodeCategory hodnoty určitého znaku.You use the CharUnicodeInfo class to obtain the UnicodeCategory value for a specific character. Třída CharUnicodeInfo definuje metody, které vracejí následující hodnoty znaků Unicode:The CharUnicodeInfo class defines methods that return the following Unicode character values:

  • Konkrétní kategorie, do které patří znak nebo náhradní pár.The specific category to which a character or surrogate pair belongs. Vrácená hodnota je členem výčtu UnicodeCategory.The value returned is a member of the UnicodeCategory enumeration.

  • Číselná hodnota.Numeric value. Platí jenom pro číselné znaky, včetně zlomků, dolních indexů, horních indexů, římských číslic, čitatelí měn, čísel encircled a číslic specifických pro skript.Applies only to numeric characters, including fractions, subscripts, superscripts, Roman numerals, currency numerators, encircled numbers, and script-specific digits.

  • Hodnota číslice.Digit value. Platí pro číselné znaky, které mohou být kombinovány s jinými číselnými znaky, aby představovaly celé číslo v systému číslování.Applies to numeric characters that can be combined with other numeric characters to represent a whole number in a numbering system.

  • Hodnota desítkové číslice.Decimal digit value. Vztahuje se pouze na znaky, které reprezentují desítkové číslice v desítkovém systému (desítkový 10).Applies only to characters that represent decimal digits in the decimal (base 10) system. Desítková číslice může být jedna z deseti číslic, od nuly do devíti.A decimal digit can be one of ten digits, from zero through nine. Tyto znaky jsou členy kategorie UnicodeCategory.DecimalDigitNumber.These characters are members of the UnicodeCategory.DecimalDigitNumber category.

Kromě toho je třída CharUnicodeInfo používána interně řadou dalších typů .NET Framework a metod, které se spoléhají na klasifikaci znaků.In addition, the CharUnicodeInfo class is used internally by a number of other .NET Framework types and methods that rely on character classification. Mezi ně patří:These include:

  • Třída StringInfo, která pracuje s textovými prvky namísto jednotlivých znaků v řetězci.The StringInfo class, which works with textual elements instead of single characters in a string.

  • Přetížení metody Char.GetUnicodeCategory, která určuje kategorii, do které patří znak nebo náhradní pár.The overloads of the Char.GetUnicodeCategory method, which determine the category to which a character or surrogate pair belongs.

  • Třídy znaků rozpoznané Regex, modul regulárních výrazů .NET Framework.The character classes recognized by Regex, the .NET Framework's regular expression engine.

Při použití této třídy ve vašich aplikacích Pamatujte na následující pokyny pro programování při použití Charho typu.When using this class in your applications, keep in mind the following programming considerations for using the Char type. Typ může být obtížné použít a řetězce jsou obecně vhodnější pro reprezentaci jazykového obsahu.The type can be difficult to use, and strings are generally preferable for representing linguistic content.

  • Objekt Char nemusí vždy odpovídat jednomu znaku.A Char object does not always correspond to a single character. I když typ Char představuje jednu 16bitovou hodnotu, některé znaky (například clustery grapheme a náhradní páry) se skládají ze dvou nebo více jednotek kódu 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. Další informace naleznete v části "objekty typu a znaky Unicode" ve třídě String.For more information, see "Char Objects and Unicode Characters" in the String class.

  • Pojem "znak" je také flexibilní.The notion of a "character" is also flexible. Znak je často považován za glyf, ale mnoho glyfů vyžaduje více kódových bodů.A character is often thought of as a glyph, but many glyphs require multiple code points. Například ä může být reprezentován buď dvěma body kódu ("a" plus U + 0308, což je kombinované tečky), nebo jedním kódovým bodem ("ä" nebo 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). Některé jazyky obsahují mnoho písmen, znaků a glyfů, které vyžadují více kódových bodů, což může způsobit nejasnost při reprezentaci jazykového obsahu.Some languages have many letters, characters, and glyphs that require multiple code points, which can cause confusion in linguistic content representation. K dispozici je například ΰ (U + 03B0, řecké malé písmeno ýpsílon s rozlučovacím znaménkem a přízvukem), ale nejedná se o stejné velké písmeno.For example, there is a ΰ (U+03B0, Greek small letter upsilon with dialytika and tonos), but there is no equivalent capital letter. Uppercasing taková hodnota jednoduše načte původní hodnotu.Uppercasing such a value simply retrieves the original value.

Poznámky pro volající

Rozpoznané znaky a konkrétní kategorie, do kterých patří, jsou definovány standardem Unicode a mohou se změnit z jedné verze standardu Unicode na jinou.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. Kategorizace znaků v určité verzi .NET Framework vychází z jedné verze standardu Unicode bez ohledu na základní operační systém, na kterém je .NET Framework spuštěná.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. V následující tabulce jsou uvedeny verze .NET Framework od .NET Framework 4.NET Framework 4 a verze standardu Unicode používané ke klasifikaci znaků.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.

Verze rozhraní .NET Framework.NET Framework version Verze Unicode StandardVersion of the Unicode Standard
[!INCLUDE[net_v40_long](~/includes/net-v40-long-md.md)] [Standard Unicode verze 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)] [Standard Unicode verze 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)] [Standard Unicode verze 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)] [Standard Unicode verze 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)] [Standard Unicode verze 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)] [Standard Unicode verze 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)] [Standard Unicode verze 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/)

Každá verze standardu Unicode obsahuje informace o změnách v databázi znaků Unicode od předchozí verze.Each version of the Unicode standard includes information on changes to the Unicode character database since the previous version. Znaková databáze Unicode je používána třídou CharUnicodeInfo pro kategorizaci znaků.The Unicode character database is used by the CharUnicodeInfo class for categorizing characters.

Metody

GetDecimalDigitValue(Char)

Získá hodnotu desítkové číslice zadaného číselného znaku.Gets the decimal digit value of the specified numeric character.

GetDecimalDigitValue(String, Int32)

Získá desítkovou číslici číselného znaku na zadaném indexu zadaného řetězce.Gets the decimal digit value of the numeric character at the specified index of the specified string.

GetDigitValue(Char)

Získá číselnou hodnotu zadaného číselného znaku.Gets the digit value of the specified numeric character.

GetDigitValue(String, Int32)

Získá číselnou hodnotu číselného znaku na zadaném indexu zadaného řetězce.Gets the digit value of the numeric character at the specified index of the specified string.

GetNumericValue(Char)

Získá číselnou hodnotu přidruženou k zadanému znaku.Gets the numeric value associated with the specified character.

GetNumericValue(String, Int32)

Získá číselnou hodnotu přidruženou ke znaku v zadaném indexu zadaného řetězce.Gets the numeric value associated with the character at the specified index of the specified string.

GetUnicodeCategory(Char)

Načte kategorii Unicode zadaného znaku.Gets the Unicode category of the specified character.

GetUnicodeCategory(Int32)

Načte kategorii Unicode zadaného znaku.Gets the Unicode category of the specified character.

GetUnicodeCategory(String, Int32)

Načte kategorii Unicode znaku na zadaném indexu zadaného řetězce.Gets the Unicode category of the character at the specified index of the specified string.

Platí pro

Viz také