Perché gli indicatori ordinali sono considerati lettere?

0

Ho avuto la mia sorpresa ieri rispetto a gli indicatori ordinali sono considerati lettere. Pensavo che le lettere fossero solo [a-zA-Z] .

Perché sono considerati lettere e non simboli?

    char.IsLetter('º'); // true
    char.IsLetter('ª'); // true
    char.IsLetter('°'); // false
    char.IsLetter('ᵗ'); // true 

C'è qualche bandiera che posso cercare per rilevare che ad esempio è un apice?

Per curiosità, c'è qualche altra lettera che non si trova nell'intervallo [a-zA-Z] ?

    
posta NullOrEmpty 04.04.2017 - 11:03
fonte

1 risposta

7

.NET segue lo standard Unicode, solo Google per il personaggio e unicode per trovare alcune informazioni utili.

  • 'º' è MASCHILE INDICATORE ORDINALE

    Parte della categoria Lettera, altro [Lo] .

  • 'ª' è FEMMINILE INDICATORE ORDINALE

    Parte della categoria Lettera, altro [Lo] .

  • '°' è DEGREE SIGN

    Parte della categoria Symbol, Other [So] .

  • 'ᵗ' è MODIFIER LETTER SMALL T

    Parte della categoria Lettera, Modificatore [Lm]

Puoi controllare la categoria unicode usando CharUnicodeInfo.GetUnicodeCategory che restituisce un UnicodeCategory .

Ad esempio:

CharUnicodeInfo.GetUnicodeCategory('ᵗ') == UnicodeCategory.ModifierLetter
    
risposta data 04.04.2017 - 12:05
fonte

Leggi altre domande sui tag