Ho provato il modulo unicodedata
di Python menzionato da nneonneo nella sua risposta e penso che funzioni probabilmente.
>>> import unicodedata
>>> unicodedata.name('你')
'CJK UNIFIED IDEOGRAPH-4F60'
>>> unicodedata.name('桜')
'CJK UNIFIED IDEOGRAPH-685C'
>>> unicodedata.name('あ')
'HIRAGANA LETTER A'
>>> unicodedata.name('ア')
'KATAKANA LETTER A'
>>> unicodedata.name('a')
'LATIN SMALL LETTER A'
Come si vede, sia i caratteri cinesi e giapponesi hanno adottato caratteri cinesi sono suddivisi in categorie per CJK UNIFIED IDEOGRAPH
e hiragana e katakana correttamente riconosciuti. Non ho testato i caratteri coreani, ma penso che dovrebbero cadere nello CJK UNIFIED IDEOGRAPH
.
Inoltre, se vi interessa soltanto se si tratta di un CJK carattere/lettera o no, sembra che questo è più semplice:
>>> import unicodedata
>>> unicodedata.category('你')
'Lo'
>>> unicodedata.category('桜')
'Lo'
>>> unicodedata.category('あ')
'Lo'
>>> unicodedata.category('ア')
'Lo'
>>> unicodedata.category('a')
'Ll'
>>> unicodedata.category('A')
'Lu'
Secondo here, Ll
è minuscolo, Lu
è maiuscola e Lo
e altre.
risposte possibili: http://stackoverflow.com/questions/6432926/how-can-i-relate-unicode-blocks-to-languages-scripts http://stackoverflow.com/questions/4545977/python-can -i-detect-unicode-string-language-code? rq = 1 – Patashu