XAMPP – MySQL – Kollation - UTF-8

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Ghost11
Mitglied
Beiträge: 442
Registriert: 08.06.2005 21:07

XAMPP – MySQL – Kollation - UTF-8

Beitrag von Ghost11 »

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 … :wink:
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Balint »

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
Meine MODs für phpBB 2.x und phpBB 3.x!
Ghost11
Mitglied
Beiträge: 442
Registriert: 08.06.2005 21:07

Beitrag von Ghost11 »

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 ( :D ) - 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 ... :wink:

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 ...
Benutzeravatar
miccom
Mitglied
Beiträge: 5620
Registriert: 30.03.2003 23:53
Wohnort: Hamburg
Kontaktdaten:

Beitrag von miccom »

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.
Ghost11
Mitglied
Beiträge: 442
Registriert: 08.06.2005 21:07

Beitrag von Ghost11 »

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.
Hallo!
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 ... :roll:

Na ja, werd mich wohl oder übel mal näher damit beschäftigen müssen ... :wink:
Benutzeravatar
DSB
Mitglied
Beiträge: 172
Registriert: 21.08.2004 12:31
Wohnort: bei Bremen
Kontaktdaten:

Beitrag von DSB »

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.
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 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.
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?
Ghost11
Mitglied
Beiträge: 442
Registriert: 08.06.2005 21:07

Beitrag von Ghost11 »

DSB hat geschrieben:Alles klar?
Äh, ja - mittlerweile ja, und DANK für die Info. :wink:
Benutzeravatar
DSB
Mitglied
Beiträge: 172
Registriert: 21.08.2004 12:31
Wohnort: bei Bremen
Kontaktdaten:

Beitrag von DSB »

Gerne.
Happy boarding. ;)
Ghost11
Mitglied
Beiträge: 442
Registriert: 08.06.2005 21:07

Beitrag von Ghost11 »

Oh - wie ich gerade sehe, hast du in deiner Sig. auch schon die Lösung für mein nächstes Problem ... :wink:

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 ... :P
Antworten

Zurück zu „Coding & Technik“