2010-08-26 21 views

risposta

6

possibile soluzione usando Python:

penso che database Unicode contiene romanizations pinyin per i caratteri cinesi, ma questi non sono inclusi nel unicodedata dati del modulo.

tuttavia, è possibile utilizzare alcune librerie esterne, come cjklib, ad esempio:

# coding: UTF-8 
import cjklib 
from cjklib.characterlookup import CharacterLookup 

c = u'好' 

cjk = CharacterLookup('T') 
readings = cjk.getReadingForCharacter(c, 'Pinyin') 
for r in readings: 
    print r 

uscita:

hāo 
hǎo 
hào 

UPDATE

cjklib è dotato di un autonomo cjknife utility, che micht aiuto. alcuni usi sono descritti here

+1

.. e se si vuoi una rappresentazione solo ascii o numerica, potresti trovare come farlo nella documentazione, oppure puoi scegliere il primo pinyin e rimuovere gli accenti: http://stackoverflow.com/questions/517923/what-is-the-best- modo da rimuovere-accen ts-in-a-python-unicode-string – mykhal

+0

Unicode ha una tabella per il mapping di Character to Pinyin, si chiama Unihan e ha un sacco di dati. :) – cburgmer

+0

'raise ValueError, 'locale sconosciuto:% s'% localename ValueError: unknown locale: UTF-8' qualche idea? – jokoon