/ / Warum akzeptiert meine MySQL-Datenbank keinen Akzent? - android, mysql, datenbank, cakephp, sortierung

Warum akzeptiert meine MySQL-Datenbank keine Akzente? - Android, MySQL, Datenbank, CakePHP, Kollation

Ich habe gerade ein Problem entdeckt, bei dem Ortsnamen, die Akzentzeichen wie La Cañada, Peñasco usw. enthalten, nicht in meiner Datenbank gespeichert werden. Durchsuchen der Antworten auf eine andere SO-Frage Was ist die beste Kollatierung für MySQL mit PHP?Ich habe versucht, sowohl meine Datenbank als auch den Sortierungstyp von Varchar zu ändern latin1_swedish_ci zu utf8_general_ci die den Charakter immer noch ablehnte. Ich habe es auch versucht utf8_unicode_ci mit einem ähnlichen Ergebnis.

Ich habe festgestellt, dass das Speichern funktioniert, wenn ich mich entleeredas Akzentzeichen auf der Kundenseite, aber im Idealfall möchte ich es dort behalten, da dies der wahre Name der Stadt ist (laut google maps apis eh).

Welche Sortierungsarten verwenden Sie zur Unterstützung -?

Zusätzliche Informationen: Verwenden von MySQL, phpMyAdmin und CakePHP mit einer Android-App als Client


Danke für die bisherigen Vorschläge. Ich denke, das wird jetzt zu einer CakePHP-Frage ... Ich habe das standardmäßig bemerkt utf8 ist nicht aktiviert, also habe ich es in meiner app / config / Datenbank aktiviert.PHP-Datei. Ich habe die Datei per FTP auf den Server zurückgeschickt und es noch immer ohne Erfolg versucht. Muss ich die Anwendung erneut bereitstellen, um diese Änderungen an der DB-Konfiguration zu starten, oder gibt es einen anderen Bereich meiner Anwendung, den ich überprüfen sollte? Zum ersten Mal CakePHP-Benutzer hier.

Antworten:

3 für die Antwort № 1

Kollation ist nur die Reihenfolge, in der die Zeichen stehensortiert, was ein notwendiger Schritt bei der Durchführung von Vergleichen ist. Es hat nichts damit zu tun, wie Daten gespeichert werden (außer, dass eine bestimmte Sortierung für eine bestimmte Kodierung spezifisch ist).

Zeichenkodierung ist die Zuordnung von Zeichen zu ihrer binären Darstellung zur Speicherung, die die unterstützten bestimmt Zeichensatz.

Allerdings nur weil eine Datenbank / Tabelle / Spalte vorhanden istDie Verwendung einer bestimmten Zeichencodierung ist nicht das Ende der Geschichte. Sie müssen auch die in Ihrer Anwendung und an ihren Schnittstellen zu anderen Komponenten (z. B. MySQL) verwendete Codierung berücksichtigen.

Während es auf PHP abzielt, utf-8 den ganzen Weg durch Es deckt so ziemlich alles ab, was Sie beachten müssen.