2011-01-30 22 views
5

Ho bisogno dell'elenco di intervalli di caratteri Unicode con la proprietà Alphabetic come definito in http://www.unicode.org/Public/5.1.0/ucd/UCD.html#Alphabetic. Tuttavia, non riesco a trovarli nel database dei caratteri Unicode, indipendentemente da come li cerco. Qualcuno può fornire un elenco di essi o solo una funzione di ricerca per i caratteri con proprietà Unicode specificate?Elenco di caratteri alfabetici Unicode

+0

Se si guarda la mia risposta, ho per richiesta fornito una funzione di ricerca per caratteri con proprietà Unicode specificate tramite [script my unichars ] (http://training.perl.com/scripts/unichars). Godere! – tchrist

risposta

2

Le proprietà del nucleo derivate possono essere calcolate dalle altre proprietà.

La proprietà alfabetico è definita come: generata da: Lu + Ll + LT + Lm + Lo + Nl + Other_Alphabetic

Quindi, se si prende tutti i personaggi di Lu, Ll, Lt, Lm, Lo, Nl, e tutti i personaggi con la proprietà Other_Alphabetic, avrai i caratteri alfabetici.

2

Citation dalla sorgente: Generated from: Lu + Ll + Lt + Lm + Lo + Nl + Other_Alphabetic

Questi abbreviazioni sembrano essere spiegato here.

11

Il database dei caratteri Unicode comprende tutti i file di testo nella distribuzione. Non è solo un singolo file come una volta era molto tempo fa.

La proprietà alfabetica è una proprietà derivata.

Davvero non si desidera utilizzare intervalli di code point per questo. Si desidera utilizzare la proprietà correttamente. Questo perché ce ne sono troppi. Utilizzando il unichars script, veniamo a sapere che ci sono più di diecimila solo nella Basic Multilingual Plane sola non conteggio Han o Hangul:

$ unichars '\p{Alphabetic}' | wc -l 
    10052 

Se includiamo gli altri 16 piani astrali, ora siamo a quattordici anni mille:

$ unichars -a '\p{Alphabetic}' | wc -l 
    14736 

e se includiamo Han e Coreano, che di fatto la proprietà alfabetico fa, abbiamo appena fatto saltare il tetto di un centinaio di punti di codice migliaia:

$ unichars -ua '\p{Alphabetic}' | wc -l 
    101539 

Spero che tu possa vedere che lo fai non desidera enumerare in modo specifico questi utilizzando gli intervalli di punti di codice. In fondo a questa strada giace la follia.

A proposito, se si trova la unichars script utile, si potrebbe anche come il e forse il uninames script.

+1

Mi piacciono molto i tuoi script! Saranno molto utili per risolvere una [domanda SO] (http://stackoverflow.com/questions/6246651/generate-uri-friendly-unicode-code-points-from-integer-counter) che ho avuto. Grazie mille per averli fatti. Domanda: quando ho appena eseguito l'ultimo comando sopra ('unichars -ua '\ p {Alphabetic}' | wc -l'), ho ottenuto 94332 righe invece di 101539. Qualche ragione per cui potrebbe essere? –

+1

@Abe: Prolly perché non stai ancora utilizzando Unicode 6.0.0.Quale versione di Perl stai usando? 'corelist -a Unicode' mostrerà le coppie di versioni Perl con versioni Unicode. A proposito, ora ho nel mio [Unicode toolchest] (http://training.perl.com/scripts/), con altri in arrivo. – tchrist

+0

Ah sì, sto ancora eseguendo Perl 5. Aggiornerò definitivamente Perl e guarderò i tuoi nuovi strumenti. Grazie! –

1

Ho trovato l'applicazione Web UniView che fornisce un'interfaccia di ricerca piacevole. La ricerca della proprietà Letter (con locale deselezionata) fornisce 14723 risultati ...

+1

La proprietà Letter non è la stessa della proprietà Alphabetic !!!! In Unicode 6.0.0, esistono 101539 punti di codice con la proprietà Alphabetic ma solo 100520 con la proprietà Letter, una differenza di oltre un migliaio di caratteri. A proposito, la tua risposta 14k è disattivata di un ordine di grandezza. – tchrist

+0

Hai ragione. A proposito, penso che lo strumento UniView non tenga conto di Han e Hangul. – thSoft

Problemi correlati