2010-03-02 12 views
5

¿Alguien tiene algún código para alfabetizar texto árabe y japonés que está en Unicode? Si el código estaba en ruby ​​eso sería genial.¿Alfabetizar texto árabe y japonés que está en Unicode?

+2

No veo qué tiene que ver específicamente con el iPhone. –

+0

Los caracteres en árabe y japonés son parte del alfabeto árabe y japonés. Creo que algunas personas podrían tomar su pregunta como un insulto. – johannes

+1

@johannes: No creo que "alfabetizar" signifique "convertir a un alfabeto inglés", sino "ordenar en un orden apropiado". –

Respuesta

4

Los puntos de código Unicode no están listados en orden alfabético (Z < a, por ejemplo), pero intentan ser aproximadamente en ese orden de todos modos. Hay un orden unicode canónico, definido por Unicode Collation Algorithm y también son pedidos específicos del idioma (el orden francés no es exactamente igual al orden alemán o checo, incluso con el mismo alfabeto), que se puede especificar en la información de la configuración regional. Creo que el ICU library contiene los algoritmos específicos del idioma que estás buscando.

0

No sé Ruby, pero Python tiene una función, ord() que traduce un carácter especial Unicode a su punto de código Unicode. Por ejemplo,

>>> a = u'ل' 
>>> ord(a) 
0: 1604 
>>> b = u'ع' 
>>> ord(b) 
1: 1593 

Busque algo así en Ruby. Supongo que los símbolos árabes se enumeran en unicode en orden alfabético.

+1

¿Ayudaría esto con esta pregunta? Si hiciéramos esto en caracteres latinos comunes, las letras se clasificarían en mayúsculas o minúsculas, lo que no tendría sentido en algunas situaciones. –

+0

Correcto, si eso también se aplica al árabe y al japonés, supongo que el OP tendría que dar cuenta de eso. –

0

Para hacer la pregunta obvia, ¿qué no te gusta de mylist.sort?

+0

¿mylist.sort funciona con Unicode y conoce el orden alfabético del alfabeto árabe o japonés? –

+0

... ¿por qué no lo intentas y ves? –

0

Dependiendo de sus necesidades words.sort en rubí estará bien para los japoneses. El orden en que aparecen los caracteres en Unicode se encuentra en un orden de clasificación razonablemente bueno. Sin embargo, no puedo responder por el árabe, pero creo que está bien también.

0

mylist.sort debería funcionar de la caja en Ruby 1.9 (que tiene incorporado el soporte de Unicode). En Ruby 1.8, donde la compatibilidad con Unicode no está incorporada, creo que tendrías que usar la gema character-encodings para extender la clase String con las comparaciones de cadenas UTF-8. (Y luego mylist.sort funcionaría.)

Cuestiones relacionadas