XAMPP – MySQL – Kollation - UTF-8
XAMPP – MySQL – Kollation - UTF-8
Hallo!
Wenn man in Verbindung mit XAMPP und phpMyAdmin eine neue MySQL-Datenbank anlegen will, dann sieht die ganze Sache nach dem Einloggen bei phpMyAdmin zunächst wie am BILD dargestellt aus.
Gleich oberhalb von „Neue Datenbank anlegen“ ist dort bei „Zeichensatz / Kollation“ der MySQL-Verbindung immer „utf8_unicode_ci“ vorgegeben.
Die Frage, die sich mir stellt, wenn ich eine neue Datenbank anlegen möchte, ist, ob ich, wenn ich normal und NUR einen Datenbank-Namen vergebe und eine DB anlege, ob ich nicht rechts daneben bei „Kollation“ nicht zusätzlich „utf8_unicode_ci“ auswählen sollte – oder wird dann dabei „utf8_unicode_ci“ von oberhalb („Zeichensatz / Kollation“) autom. dann übernommen/gewählt?
Passt eigentlich „utf8_unicode_ci“ prinzipiell immer für alle Web-Anwendungen, wie z.B. für phpBB3?
Wäre nett, wenn mich da jemand aufklären könnte, oder einen Tipp geben könnte …
Wenn man in Verbindung mit XAMPP und phpMyAdmin eine neue MySQL-Datenbank anlegen will, dann sieht die ganze Sache nach dem Einloggen bei phpMyAdmin zunächst wie am BILD dargestellt aus.
Gleich oberhalb von „Neue Datenbank anlegen“ ist dort bei „Zeichensatz / Kollation“ der MySQL-Verbindung immer „utf8_unicode_ci“ vorgegeben.
Die Frage, die sich mir stellt, wenn ich eine neue Datenbank anlegen möchte, ist, ob ich, wenn ich normal und NUR einen Datenbank-Namen vergebe und eine DB anlege, ob ich nicht rechts daneben bei „Kollation“ nicht zusätzlich „utf8_unicode_ci“ auswählen sollte – oder wird dann dabei „utf8_unicode_ci“ von oberhalb („Zeichensatz / Kollation“) autom. dann übernommen/gewählt?
Passt eigentlich „utf8_unicode_ci“ prinzipiell immer für alle Web-Anwendungen, wie z.B. für phpBB3?
Wäre nett, wenn mich da jemand aufklären könnte, oder einen Tipp geben könnte …
Hallo!
Sollte prinzipiell so aussehen, wie du es sagst. Aber es ist zu bedenken, das die Kollation nicht so viel aussagt:
http://www.mysqldumper.de/board/viewtopic.php?t=2313
Viele Grüße,
Bálint
Sollte prinzipiell so aussehen, wie du es sagst. Aber es ist zu bedenken, das die Kollation nicht so viel aussagt:
http://www.mysqldumper.de/board/viewtopic.php?t=2313
Viele Grüße,
Bálint
Hallo Blaint!
Zunächst D A N K - denn mit deinem Link hast du mir nämlich genau die profunden Antworten zu dem Thema geliefert!
Ist ja auch nicht so ganz ohne die Sache, wenn man nicht darauf achtet:
Beispiel: Ich erstelle mein komplettes phpBB3 LOKAL auf meinem PC - mit allem Drum und Dran, was ich halt so vorhabe (Strukturierung, Mod-Einbau etc) - was man ja mit XAMPP nicht wirklich tun sollte ( ) - aber selbstverständlich geht (in routinierter Hand). Tja, und irgendwann mal möchte man beispielsweise das ganze Zeugs LIVE ins Netz bringen (also, unter REALEN Bedingungen), also bei einem Hoster oder auf "echten" Servern. Und dabei kann es dann aber heftig Probleme mit den (zuvor lokal gewählten) Unicodes geben. Dennoch müsste es prinzipell DENNOCH klappen - muss halt nur der "echte" Server darauf abgestimmt werden, DU musst dabei halt wissen, mit welchem UTF-8-Code du gearbeitet hast, und dies halt dem Hoster/Server mitteilen, der die Sache (hoffentlich) daraufhin anpasst - so sollte/könnte es klappen.
Die Frage die sich mir allerdings noch immer stellt ist, ob dieser „utf8_unicode_ci“ prinzipiell immer geeignet ist. Ist eben nur so ein Bauchgefühl von mir (was aber täuschen könnte), und zwar der darin enthaltene "uni"-Begriff, welcher wohl auf "universell" hindeuten dürfte ... es sei denn, jemand weiß dazu mehr, was dieser „utf8_unicode_ci“ eigentlich konkret macht, bzw. ob der fast alle nur möglichen Sprachen bzw. Zeichen zur korrekten Darstellung abdeckt ...
Nachtrag:
Ops - Die Antwort gerade HIER selber gefunden ...
Heißt im Klartext - und meine VERMUTUNG oben war richtig:
ucs2_unicode_ci als auch utf8_unicode_ci sind ungefähr gleichwertig - und decken dabei Zeichensätz für 650 Sprachen (!) ab. Heißt also im Klartext, mit 1 von diesen beiden beim Anlegen einer MySQL-Datenbank arbeiten - und man hat prinzipiell nie Probleme mit der Darstellung von irgendwelchen Sprachen oder Zeichen. Bei einem etwaigen Siedeln, muss die dortige Datenbank ebenfalls entweder ucs2_unicode_ci oder utf8_unicode_ci bereitstellen - und zwar konkret jenen Unicode, mit welchem man gearbeitet/eingesetzt hatte ...
Zunächst D A N K - denn mit deinem Link hast du mir nämlich genau die profunden Antworten zu dem Thema geliefert!
Ist ja auch nicht so ganz ohne die Sache, wenn man nicht darauf achtet:
Beispiel: Ich erstelle mein komplettes phpBB3 LOKAL auf meinem PC - mit allem Drum und Dran, was ich halt so vorhabe (Strukturierung, Mod-Einbau etc) - was man ja mit XAMPP nicht wirklich tun sollte ( ) - aber selbstverständlich geht (in routinierter Hand). Tja, und irgendwann mal möchte man beispielsweise das ganze Zeugs LIVE ins Netz bringen (also, unter REALEN Bedingungen), also bei einem Hoster oder auf "echten" Servern. Und dabei kann es dann aber heftig Probleme mit den (zuvor lokal gewählten) Unicodes geben. Dennoch müsste es prinzipell DENNOCH klappen - muss halt nur der "echte" Server darauf abgestimmt werden, DU musst dabei halt wissen, mit welchem UTF-8-Code du gearbeitet hast, und dies halt dem Hoster/Server mitteilen, der die Sache (hoffentlich) daraufhin anpasst - so sollte/könnte es klappen.
Die Frage die sich mir allerdings noch immer stellt ist, ob dieser „utf8_unicode_ci“ prinzipiell immer geeignet ist. Ist eben nur so ein Bauchgefühl von mir (was aber täuschen könnte), und zwar der darin enthaltene "uni"-Begriff, welcher wohl auf "universell" hindeuten dürfte ... es sei denn, jemand weiß dazu mehr, was dieser „utf8_unicode_ci“ eigentlich konkret macht, bzw. ob der fast alle nur möglichen Sprachen bzw. Zeichen zur korrekten Darstellung abdeckt ...
Nachtrag:
Ops - Die Antwort gerade HIER selber gefunden ...
Heißt im Klartext - und meine VERMUTUNG oben war richtig:
.Unicode-Zeichensätze
MySQL umfasst zwei Unicode-Zeichensätze. Sie können mit diesen beiden Zeichensätzen Text in ca. 650 Sprachen speichern.
ucs2_unicode_ci als auch utf8_unicode_ci sind ungefähr gleichwertig - und decken dabei Zeichensätz für 650 Sprachen (!) ab. Heißt also im Klartext, mit 1 von diesen beiden beim Anlegen einer MySQL-Datenbank arbeiten - und man hat prinzipiell nie Probleme mit der Darstellung von irgendwelchen Sprachen oder Zeichen. Bei einem etwaigen Siedeln, muss die dortige Datenbank ebenfalls entweder ucs2_unicode_ci oder utf8_unicode_ci bereitstellen - und zwar konkret jenen Unicode, mit welchem man gearbeitet/eingesetzt hatte ...
Hallo!miccom hat geschrieben:Das was du unter Kollation via z.B. phpmyadmin an der Datenbank einstellen kannst, betrifft nur die Art und Weise, wie mysql die Zeichen sortiert.
hm, wird schon stimmen was du sagst. Hatte in der Zwischenzeit noch keine Zeit mich näher/weiter damit zu beschäftigen. Jedenfalls, ich weiß im Augenblick ja noch immer nicht, WAS und OB ich rechts neben "Neue Datenbank anlegen" etwas auswählen soll/muss, bzw., ob das von oberhalb, also was vorgegeben ist (siehe Bild oben), autom. gewählt wird, wenn man nichts auswählt - und das ist ja der Punkt. Und falls man was auswählen muss/sollte - WAS auswählen?
Ich wäre momentan nach wie vor der Meinung, dass man rechts daneben "utf8_unicode_ci" unbedingt auswählen sollte ...
Na ja, werd mich wohl oder übel mal näher damit beschäftigen müssen ...
utf8_unicode_ci ist kein Zeichensatz sondern eine Sortiervereinbarung.
Der zugrundeliegende Zeichensatz ist Unicode, gespeichert im utf8 Format.
Die Sortiervereinbarung ci bedeutet "case insensitive", also unabhängig von Groß-, Kleinschreibung - "A" ist mit "a" gleichwertig. Demnach kannst Du das Kürzel "_cs" auch ableiten -> cs=case sensitive -> "A" ist kleiner als "a". So werden Worte in Großbuchstaben in einer Liste von Datensätzen sortiert nach dieser Spalte vor denen mit Kleinbuchstaben stehen.
Trotz des Links scheinst Du die Zusammenhänge noch nicht ganz verstanden zu haben.
Wenn Du also willst, dass Deine Datenbank grundsätzlich den Zeichensatz Unicode benutz und Du weißt, dass der MySQL-Server als Standardeinstellung latin1 benutzt,, dann gib es an. Gibst Du nichts an, so ist das Ergebnis Deiner Arbeit beim Export auf andere Server unvorhersehbar, da dort die Standardeinstellung anders sein kann.
Hast Du es aber angegeben, so wird normalerweise die Einstellung mit in einem Backup gespeichert, so dass es auch auf anderen Servern funktionieren sollte.
Alles klar?
Der zugrundeliegende Zeichensatz ist Unicode, gespeichert im utf8 Format.
Die Sortiervereinbarung ci bedeutet "case insensitive", also unabhängig von Groß-, Kleinschreibung - "A" ist mit "a" gleichwertig. Demnach kannst Du das Kürzel "_cs" auch ableiten -> cs=case sensitive -> "A" ist kleiner als "a". So werden Worte in Großbuchstaben in einer Liste von Datensätzen sortiert nach dieser Spalte vor denen mit Kleinbuchstaben stehen.
Trotz des Links scheinst Du die Zusammenhänge noch nicht ganz verstanden zu haben.
Wenn Du den Artikel aufmerksam gelesen hättest, dann würdest Du wissen, dass wenn keine andere Vereinbarung getroffen wird, die Default-Einstellungen des MySQL-Servers greifen.Jedenfalls, ich weiß im Augenblick ja noch immer nicht, WAS und OB ich rechts neben "Neue Datenbank anlegen" etwas auswählen soll/muss, bzw., ob das von oberhalb, also was vorgegeben ist
Wenn Du also willst, dass Deine Datenbank grundsätzlich den Zeichensatz Unicode benutz und Du weißt, dass der MySQL-Server als Standardeinstellung latin1 benutzt,, dann gib es an. Gibst Du nichts an, so ist das Ergebnis Deiner Arbeit beim Export auf andere Server unvorhersehbar, da dort die Standardeinstellung anders sein kann.
Hast Du es aber angegeben, so wird normalerweise die Einstellung mit in einem Backup gespeichert, so dass es auch auf anderen Servern funktionieren sollte.
Alles klar?
Oh - wie ich gerade sehe, hast du in deiner Sig. auch schon die Lösung für mein nächstes Problem ...
Auch damit werde ich mich wohl demnächst näher beschäftigen müssen. Bin leider allgemein sehr schwach noch auf der Brust in Hinblick auf MySQL. Muss mich für MySQL erstmal irgendwo irgendwie einlesen. Ich bin ja schon FROH, dass es so etwas wie XAMPP gibt (meiner Meinung nach ein echtes Goldstück das ganze Zeug), sodass man zumindest mal "ungefährlich" Trocken-Training damit machen kann ...
Auch damit werde ich mich wohl demnächst näher beschäftigen müssen. Bin leider allgemein sehr schwach noch auf der Brust in Hinblick auf MySQL. Muss mich für MySQL erstmal irgendwo irgendwie einlesen. Ich bin ja schon FROH, dass es so etwas wie XAMPP gibt (meiner Meinung nach ein echtes Goldstück das ganze Zeug), sodass man zumindest mal "ungefährlich" Trocken-Training damit machen kann ...