2010-03-02 9 views
5

Hat jemand einen Code zum Alphabetisieren von arabischem und japanischem Text in Unicode? Wenn der Code in Ruby wäre, wäre das großartig.Alphabetisch arabischer und japanischer Text in Unicode?

+2

Ich sehe nicht, was das speziell mit dem iPhone zu tun hat. –

+0

Die arabischen und japanischen Schriftzeichen sind Teil des arabischen, japanischen Alphabets. Ich denke, manche Leute könnten deine Frage als Beleidigung betrachten. – johannes

+1

@johannes: Ich glaube nicht, "alphabetisch" bedeutet "Umwandlung in ein englisches Alphabet", sondern "Sortierung in der richtigen Reihenfolge". –

Antwort

4

Unicode-Codepunkte sind nicht in alphabetischer Reihenfolge aufgeführt (Z < a, zum Beispiel), aber sie versuchen, ungefähr in dieser Reihenfolge trotzdem zu sein. Es gibt eine kanonische Unicode-Reihenfolge, definiert durch die Unicode Collation Algorithm und sie sind auch sprachspezifische Reihenfolge (Französisch Reihenfolge ist nicht genau die gleiche wie deutsche oder tschechische Reihenfolge, auch mit dem gleichen Alphabet), die in Gebietsschema Informationen angegeben werden können. Ich denke, die ICU library enthält die sprachspezifischen Algorithmen, nach denen Sie suchen.

0

Ich weiß Ruby nicht, aber Python hat eine Funktion, ord(), die ein Unicode-Sonderzeichen in seinen Unicode-Codepunkt übersetzt. Zum Beispiel

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

Suchen Sie nach etwas in Ruby. Ich nehme an, dass die arabischen Symbole in Unicode in alphabetischer Reihenfolge aufgeführt sind.

+1

Würde dies bei dieser Frage helfen? Wenn wir dies mit gewöhnlichen lateinischen Zeichen machen würden, würde das bedeuten, dass Buchstaben zuerst in Groß- oder Kleinbuchstaben sortiert würden, was in manchen Situationen nicht sinnvoll wäre. –

+0

Richtig, wenn das auch für Arabisch und Japanisch gilt, würde das OP wohl dafür verantwortlich sein. –

0

Um die offensichtliche Frage zu stellen, was magst du nicht an ?

+0

Funktioniert mylist.sort mit Unicode und kennt die alphabetische Reihenfolge des arabischen oder japanischen Alphabets? –

+0

... warum versuchst du es nicht und siehst es? –

0

Je nach Ihren Bedürfnissen words.sort in Rubin wird für Japaner in Ordnung sein. Die Reihenfolge, in der die Zeichen in Unicode angezeigt werden, ist in einer einigermaßen guten Sortierreihenfolge. Ich kann zwar nicht für Arabisch garantieren, aber meine Vermutung ist, dass es auch in Ordnung ist.

0

sollte out of the box in Ruby 1.9 funktionieren (die integrierte Unicode-Unterstützung hat). In Ruby 1.8, wo die Unicode-Unterstützung nicht eingebaut ist, denke ich, dass Sie die character-encodings Perle verwenden müssen, um die String-Klasse mit UTF-8 String-Vergleichen zu erweitern. (Und dann würde funktionieren.)