utf8
ist eine Codierung (wie man Unicode-Zeichen als eine Reihe von Bytes darstellt), keine Sortierung (welches Zeichen vor welchem steht).
Ich denke, das Kollatierungsäquivalent von Postgres 10 für utf8_general_ci
(oder moderner utf8_unicode_ci
) heißt und-x-icu
- Dies ist eine undefinierte Sortierung (nicht definiert für eine reale Weltsprache), die von einer ICU-Bibliothek bereitgestellt wird. Diese Sortierung würde Zeichen aus den meisten Sprachen ziemlich vernünftig sortieren.
Die ICU-Unterstützung ist eine neue Funktion, die in PostgreSQL 10 hinzugefügt wurde, sodass diese Sortierung nicht für ältere PostgreSQL-Versionen verfügbar ist oder wenn sie während der Kompilierung deaktiviert wird. Davor verwendete Postgres vom Betriebssystem bereitgestellte Kollatierungsunterstützung, die sich je nach Betriebssystem unterscheidet.