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 | 高 Surrogate 或低 Surrogate 字元。 Surrogate 字碼值落在 U+D800 到 U+DFFF 的範圍內。 以 Unicode 指定 "Cs" 表示 (其他、Surrogate)。 值為 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是由和 CharUnicodeInfo.GetUnicodeCategory 方法傳Char.GetUnicodeCategory回。 列舉 UnicodeCategory 也可用來支援 Char 方法,例如 IsUpper(Char)。 這類方法會判斷指定的字元是否為特定 Unicode 一般類別的成員。 Unicode 一般類別會定義字元的廣泛分類,也就是指定為字母、十進位數、分隔符、數學符號、標點符號等等。
此列舉是以 Unicode Standard 5.0 版為基礎。 如需詳細資訊,請參閱 Unicode Character Database 中的 "UCD File Format" 和 "General Category Values" 副標題。
Unicode 標準會定義下列專案:
Surrogate 配對是單一抽象字元的編碼字元表示法,其中包含兩個程式代碼單位的序列,其中配對的第一個單位是高 Surrogate,而第二個則是低 Surrogate。 高 Surrogate 是 U+D800 到 U+DBFF 範圍中的 Unicode 字碼點,低 Surrogate 是 U+DC00 到 U+DFFF 範圍中的 Unicode 字碼點。
結合字元序列是基底字元和一或多個結合字元的組合。 Surrogate 配對代表基底字元或合併字元。 合併字元是間距或非步調。 轉譯時,合併字元的間距會自行佔用間距位置,而非步調合併字元則不會。 讀音符號是非步調合併字元的範例。
修飾詞字母是獨立間距字元,就像合併字元一樣,表示先前字母的修改。
括住標記是一個非步調合併字元,會將所有先前字元括在一起,並包含基底字元。
格式字元是通常不會轉譯但會影響文字版面配置或文字處理程式作業的字元。
Unicode 標準會定義一些標點符號的變化。 例如,連字元可以是數個代表連字元的程式代碼值之一,例如 U+002D (連字元減號) 或 U+00AD (軟連字元) 或 U+2010 (連字元) 或 U+2011 (非中斷連字元) 。 虛線、空格字元和引號也是如此。
Unicode 標準也會將程式代碼指派給指定腳本或語言特定的十進位數表示法,例如 U+0030 (位數零) 和 U+0660 (阿拉伯索引數位零) 。