UnicodeCategory 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义字符的 Unicode 类别。
public enum class UnicodeCategory
public enum UnicodeCategory
[System.Serializable]
public enum UnicodeCategory
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum UnicodeCategory
type UnicodeCategory =
[<System.Serializable>]
type UnicodeCategory =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type UnicodeCategory =
Public Enum UnicodeCategory
- 继承
- 属性
字段
ClosePunctuation | 21 | 成对的标点符号(例如括号、方括号和大括号)的结束字符。 由 Unicode 代码“Pe”(标点,结束)表示。 值为 21。 |
ConnectorPunctuation | 18 | 连接两个字符的连接符标点字符。 由 Unicode 代码“Pc”(标点,连接符)表示。 值为 18。 |
Control | 14 | 控制代码字符,其 Unicode 值为 U+007F,或者属于 U+0000 到 U+001F 或 U+0080 到 U+009F 的范围内。 由 Unicode 代码“Cc”(其他,控制)表示。 值为 14。 |
CurrencySymbol | 26 | 货币符号字符。 由 Unicode 代码“Sc”(符号,货币)表示。 值为 26。 |
DashPunctuation | 19 | 短划线或连字符字符。 由 Unicode 代码“Pd”(标点,短划线)表示。 值为 19。 |
DecimalDigitNumber | 8 | 十进制数字字符,即表示 0 到 9 范围内的整数的字符。 由 Unicode 代码“Nd”(数字,十进制数字)表示。 值为 8。 |
EnclosingMark | 7 | 封闭符号字符,它是将基字符前面的所有字符(包括基字符)括起来的不占位字符。 由 Unicode 代码“Me”(符号,封闭)表示。 值为 7。 |
FinalQuotePunctuation | 23 | 右引号或后引号字符。 由 Unicode 代码“Pf”(标点,后引号)表示。 值为 23。 |
Format | 15 | 格式字符,它影响文本的布局或文本处理操作,但通常不呈现。 由 Unicode 代码“Cf”(其他,格式)表示。 值为 15。 |
InitialQuotePunctuation | 22 | 左引号或前引号字符。 由 Unicode 代码“Pi”(标点,前引号)表示。 值为 22。 |
LetterNumber | 9 | 由字母表示的数字,而不是十进制数字,例如,罗马数字 5 由字母“V”表示。 此指示符由 Unicode 代码“Nl”(数字,字母)表示。 值为 9。 |
LineSeparator | 12 | 用于分隔文本各行的字符。 由 Unicode 代码“Zl”(分隔符,行)表示。 值为 12。 |
LowercaseLetter | 1 | 小写字母。 由 Unicode 代码“Ll”(字母,小写)表示。 值为 1。 |
MathSymbol | 25 | 数学符号字符,如“+”或“=”。 由 Unicode 代码“Sm”(符号,数学)表示。 值为 25。 |
ModifierLetter | 3 | 修饰符字母字符,它是独立式的间距字符,指示前面字母的修改。 由 Unicode 代码“Lm”(字母,修饰符)表示。 值为 3。 |
ModifierSymbol | 27 | 修饰符符号字符,它指示环绕字符的修改。 例如,分数斜线号指示其左侧的数字为分子,右侧的数字为分母。 此指示符由 Unicode 代码“Sk”(符号,修饰符)表示。 值为 27。 |
NonSpacingMark | 5 | 指示基字符的修改的不占位字符。 由 Unicode 代码“Mn”(符号,不占位)表示。 值为 5。 |
OpenPunctuation | 20 | 成对的标点符号(例如括号、方括号和大括号)的开始字符。 由 Unicode 代码“Ps”(标点,开始)表示。 值为 20。 |
OtherLetter | 4 | 不属于大写字母、小写字母、词首字母大写或修饰符字母的字母。 由 Unicode 代码“Lo”(字母,其他)表示。 值为 4。 |
OtherNotAssigned | 29 | 未分配给任何 Unicode 类别的字符。 由 Unicode 代码“Cn”(其他,未分配)表示。 值为 29。 |
OtherNumber | 10 | 既不是十进制数字也不是字母数字的数字,例如分数 1/2。 此指示符由 Unicode 代码“No”(数字,其他)表示。 值为 10。 |
OtherPunctuation | 24 | 不属于连接符、短划线、开始标点、结束标点、前引号或后引号的标点字符。 由 Unicode 代码“Po”(标点,其他)表示。 值为 24。 |
OtherSymbol | 28 | 不属于数学符号、货币符号或修饰符符号的符号字符。 由 Unicode 代码“So”(符号,其他)表示。 值为 28。 |
ParagraphSeparator | 13 | 用于分隔段落的字符。 由 Unicode 代码“Zp”(分隔符,段落)表示。 值为 13。 |
PrivateUse | 17 | 专用字符,其 Unicode 值在在 U+E000 到 U+F8FF 的范围内。 由 Unicode 代码“Co”(其他,专用)表示。 值为 17。 |
SpaceSeparator | 11 | 没有标志符号但不属于控制或格式字符的空格字符。 由 Unicode 代码“Zs”(分隔符,空格)表示。 值为 11。 |
SpacingCombiningMark | 6 | 间隔字符,它指示基字符的修改并影响基字符的标志符号的宽度。 由 Unicode 代码“Mc”(符号,间隔组合)表示。 值为 6。 |
Surrogate | 16 | 高代理项或低代理项字符。 代理项代码值在 U+D800 到 U+DFFF 的范围内。 由 Unicode 代码“Cs”(其他,代理项)表示。 值为 16。 |
TitlecaseLetter | 2 | 词首字母大写的字母。 由 Unicode 代码“Lt”(字母,词首字母大写)表示。 值为 2。 |
UppercaseLetter | 0 | 大写字母。 由 Unicode 代码“Lu”(字母,大写)表示。 值为 0。 |
示例
以下示例显示 UppercaseLetter 类别中的字符及其对应的代码点。 可以通过将 UppercaseLetter 替换为变量赋值 category
中感兴趣的类别来修改该示例以显示任何其他类别中的字母。 请注意,某些类别的输出可能非常广泛。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
int ctr = 0;
UnicodeCategory category = UnicodeCategory.UppercaseLetter;
for (ushort codePoint = 0; codePoint < ushort.MaxValue; codePoint++) {
Char ch = (char)codePoint;
if (CharUnicodeInfo.GetUnicodeCategory(ch) == category) {
if (ctr % 5 == 0)
Console.WriteLine();
Console.Write("{0} (U+{1:X4}) ", ch, codePoint);
ctr++;
}
}
Console.WriteLine();
Console.WriteLine("\n{0} characters are in the {1:G} category",
ctr, category);
}
}
Imports System.Globalization
Module Example
Public Sub Main()
Dim ctr As Integer = 0
Dim category As UnicodeCategory = UnicodeCategory.UppercaseLetter
For codePoint As UShort = 0 To UShort.MaxValue - 1
Dim ch As Char = Convert.ToChar(codePoint)
If CharUnicodeInfo.GetUnicodeCategory(ch) = category Then
If ctr Mod 5 = 0 Then Console.WriteLine()
Console.Write("{0} (U+{1:X4}) ", ch, codePoint)
ctr += 1
End If
Next
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("{0} characters are in the {1:G} category",
ctr, category)
End Sub
End Module
注解
枚举的成员 UnicodeCategory 由 Char.GetUnicodeCategory 和 CharUnicodeInfo.GetUnicodeCategory 方法返回。 枚举 UnicodeCategory 还用于支持 Char 方法,例如 IsUpper(Char)。 此类方法确定指定的字符是否是特定 Unicode 常规类别的成员。 Unicode 常规类别定义字符的广泛分类,即指定为字母、十进制数字、分隔符、数学符号、标点符号等类型。
此枚举基于 Unicode Standard 版本 5.0。 有关详细信息,请参阅 Unicode 字符数据库中的“UCD 文件格式”和“常规类别值”子主题。
Unicode 标准定义以下内容:
代理项对是单个抽象字符的编码字符表示形式,该抽象字符由两个代码单元组成的序列组成,其中对的第一个单元是高代理项,第二个是低代理项。 高代理项是 U+D800 到 U+DBFF 范围内的 Unicode 码位,低代理项是 U+DC00 到 U+DFFF 范围内的 Unicode 码点。
组合字符序列是基字符和一个或多个组合字符的组合。 代理项对表示基字符或组合字符。 组合字符是间距或非节奏字符。 组合字符的间距在呈现时会占用一个间距位置,而非间距组合字符则不会占用间距位置。 音调符号是非节奏组合字符的示例。
修饰字母是一个独立间距字符,与组合字符一样,指示对前一个字母的修改。
封闭标记是一个非节奏组合字符,它包围所有以前的字符,包括一个基字符。
格式字符是通常不呈现但会影响文本布局或文本进程的操作的字符。
Unicode 标准定义了一些标点符号的多个变体。 例如,连字符可以是表示连字符的多个代码值之一,例如 U+002D (连字符减号) 或 U+00AD (软连字符) 或 U+2010 (连字符) 或 U+2011 (非中断连字符) 。 短划线、空格字符和引号也是如此。
Unicode 标准还向特定于给定脚本或语言的十进制数字表示形式分配代码,例如 U+0030 (数字零) 和 U+0660 (阿拉伯语-索引数字零) 。