Ich habe festgestellt, dass mein Schema keine Zeichenfolgen mit regionalen Zeichen wie è, ù und anderen Akzenten oder Symbolen ausgeben kann.MySQL: Welche Standardsortierung sollte ich einstellen, um alle europäischen Zeichen abzudecken?
Die Manager-App ist ein Java-Servlet, es hat keine solchen Probleme. Es verwendet den JDBC-Treiber. Also dachte ich, die Ursache könnte folgende Standardsortierung sein: utf8 - utf8_general_ci.
Nach einer Recherche entdeckte ich, dass diese Zeichen nicht innerhalb der utf8 Bytes gespeichert werden können. Sollte ich utf8-mb4, utf-16, utf-32 oder eine andere verwenden? Welches ist das minimal beste, um alle europäischen Zeichen zu unterstützen (keine kyrillischen, arabischen und asiatischen)?
Zum Beispiel schlägt diese gewählte Antwort utf8mb4_unicode vor, aber ich sehe nicht, ob es wirklich das minimale Beste ist, um alle Charaktere abzudecken, die ich brauche.
What's the difference between utf8_general_ci and utf8_unicode_ci
Eine Sortierfolge wird zum Sortieren/Vergleichen von Zeichenfolgen verwendet. Ein Encoding/Zeichensatz wird verwendet, um Zeichen in Bytes zu codieren.UTF8 ist eine Kodierung und unterstützt alle möglichen Unicode-Zeichen. Ihre Forschung scheint Sie zu einer falschen Schlussfolgerung geführt zu haben. Sie sollten genau sagen, mit Code, was Sie tun, was Sie erwarten und was stattdessen passiert. –
utf8 und utf16 decken im Prinzip die gleichen Zeichen ab (einschließlich Ihrer akzentuierten Symbole), nur die Codierung ist anders, utf8 bedeutet nicht "8 bit", sondern "minimim von 8 bit"; utf8mb4 in mysql fügt das vierte Byte des utf8-Standards hinzu. Sie sollten es für die Kompatibilität verwenden (es werden weniger Bytes verwendet, wenn Sie nicht alle benötigen). Die '_unicode_ci' oder '_general_ci' betrachten nur die Sortierung (Sie sollten' _unicode_ci' verwenden). Sie haben wahrscheinlich irgendwo in Ihrer Kette ein Codierproblem (Zeichenfolgen in Java sind utf16, Sie müssen möglicherweise die korrekte utf8-Codierung in Ihrem Treiber/Import/Bytestream/Ausgabe-Client einstellen). – Solarflare