Frage

Da Unicode eine Reihe von Null Breite Sortier Zeichen fehlt, muss ich äquivalente Zeichen bestimmen, die mir erlauben, eine gewisse Ordnung auf einer Liste zu zwingen, die automatisch von Zeichenwerten sortiert ist. Leider sind die Listenelemente nicht in alphabetischer Reihenfolge, noch ist es akzeptabel, sie mit sichtbaren Zeichen Präfix das Ergebnis der Art zu gewährleisten, passt das gewünschte Ergebnis.

Was Unicode-Zeichen können vor regulären lateinischen Alphabet Text geworfen werden und wird nicht erscheinen, aber immer noch erlauben Sie mir, „Spitze“ die Art in der Weise, die ich benötige?

(BTW ist dies mit Drupal 5 mit einem Benutzerprofil Listenfeld getan. Sie was darauf hindeutet, nicht die Mühe, dass eine Änderung zu einem Vokabular / Kategorie).

War es hilfreich?

Lösung

Null-Breite Raum (U + 200B) sollten wahrscheinlich tun, was Sie wollen. Aus der Unicode-Spezifikation:

  

Nullbreite Raum. Der U + 200B ZERO WIDTH SPACE zeigt einen Zeilenumbruch Gelegenheit, mit der Ausnahme, dass es keine Breite hat. Null-Breite Leerzeichen soll in Sprachen verwendet werden sollte, die keinen sichtbaren Wortabstand haben Zeilenumbrüche Möglichkeiten darstellen, wie zum Beispiel Thai, Khmer und Japanisch.

Sollte in den meisten Schriftarten, die Sie laufen in, aber YMMV.

Andere Tipps

Ich persönlich lieber nur einen primären / sekundären Sortierschlüssel verwenden. Es ist weniger kludgy und einfach in einer typischen SQL-Abfrage (ORDER BY column_a, column_b) zu implementieren. Edited hinzufügen :. Php, Sie usort(array, comparisonFunction) mit einer benutzerdefinierten Vergleichsfunktion, um zusätzliche Logik zum Sortieren, wenn Sie nicht SQL den Trick zu tun verwenden verwenden könnten

Wenn Sie jedoch nur eine Spalte haben, mit zu arbeiten, und das ist nicht fixierbaren, Präfix nur mit einer bestimmten Anzahl von Zeichen unwahrscheinlich wie Unterstrichen zum Sortieren, sie dann einfach abzustreifen, bevor Sie sie an. (Unter Verwendung von regexp Substitution oder ähnlichem).

Unicode-basierte Hacks auf stark abhängen, welche Schriftarten verwendet werden, was für Gebietsschema des Sortierungs / Sortierreihenfolge Sie verwenden, und können unerwünschte Nebenwirkungen auf Kunden produzieren Sie haben keine Kontrolle über (verschiedene Browser, verschiedene Osen, verschiedene Client-Positionen). Die meisten „nicht druckbar“ Zeichen ergeben das „unbekannte Zeichen“, wenn sie auf Systeme ohne Unterstützung angezeigt, die in der Regel wie ein leeres Quadrat aussieht. Es gibt einig Null-Breite Zeichen für Sprachen wie Arabisch verwendet, aber sie sollen nicht beeinflussen mit sehr perverser Unicode-Unterstützung, außer in Anwendungen zu sortieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top