Re: [geloest] Probleme mit Zeichen-Kodierung
Posted: Fri Jun 13, 2008 10:15 am
Um Fall4 zu erreichen: Kann ich denn nun einfach die Kollation ändern? Gibt es eine Anleitung?
Content management as it is meant to be
https://forum.cmsmadesimple.org/
Stimmt, allerdings wird das Charset der DB nur hergenommen, wenn man beim erstellen einer Tabelle kein Charset angibt.NaN wrote:Warscheinlich, weil die DB nicht vom CMS angelegt wird.
Wie oben geschrieben, das Charset der DB ist nicht wichtig. Es muss nur geprüft werden, ob das eingesetzte DBMS überhaupt Charsets unterstützt.NaN wrote:Gut, man könnte bei der Installation prüfen, welche Kollation die DB hat und diese vor der Erstellung der Tabellen auf UTF-8 setzen. (Oder zumindest eine Meldung ausgeben, dass Zeichenkodierung von CMS und DB nicht 100% kompatibel sind.)
Das Chasrset der DB vom Installer ändern zu lassen, mag allerdings nicht unbedingt das sein, was der User haben will.NaN wrote:Ich weiß nicht wie diese alle funktionieren und ob man da die Kollation der DB einfach ändern kann/darf.
Da sind zwar einige Treiber dabei, CMSMS unstützt(e) aber nur 3 davon. 1 von denen ist jetzt im SVN zusätzlich rausgeflogen, so das es dann nur noch 2 sind.NaN wrote:Nun unterstützt CMSms dank AdoDB Lite allerdings mehrere Datenbanken.
Für den Standardfall (1) CMS ohne "set names 'utf8'", DB mit"latin1") hatte ich dazu mal in der MLE Section ein Script gepostet, was die Konvertierung erledigt. Da du ja jetzt schon falsche Zeichen von Hand korrigiert hast, funktioniert das auch nicht mehr ganz korrekt.mm231 wrote:Um Fall4 zu erreichen: Kann ich denn nun einfach die Kollation ändern? Gibt es eine Anleitung?
Also wenn du eine vorhandene Demo-Seite bearbeitest oder eine Neue anlegst?Und dennoch steht bei Umlauten "Schrott" in der DB.
Die erzeugten Tabellen haben jetzt aber schon eine 'utf8...' Kollation?also ich habe jetzt mal eine Datenbank mit UTF-8 angelegt.
Wenn du den Export mit MYSQL40-Komatibilität erstellst, werden keine Charset/Kollation-Angaben geschrieben. Vor dem Import dann mit einem Editor überprüfen, ob die ".sql"-Datei wirklich utf-8 kodiert ist, und alle Zeichen darin korrekt sind.mm231 wrote:Gibt es die Möglichkeit zu exportieren, dabei aber auf die Angabe der Kollation zu verzichten
Hab's im Prinzip genauso gemacht wie mm231 und einfach für Sitename ein paar Umlaute eingegeben.Wiedmann wrote:
(Bei der Installation wird ja gar nichts mit Umlaut in die DB geschrieben)
Und wenn man CMSMS in eine ut8-db installiert, nicht vergessen, danach den Index in der Tabelle "cms_module_templates" von Hand anzulegen.NaN wrote:Die Datenbank muss man vor der Installation des CMS "von Hand" mit der Option "Operationen" in phpMyAdmin auf UTF-8 setzen.
Komisch, kaum macht man's richtig, funktionert's
Das verstehe ich jetzt nicht ganz. Export und MYSQL40-Kompat. funktionierte einwandfrei. Beim Import erhielt ich den Fehler #1071 - Specified key was too long; max key length is 1000 bytes bei der Tabelle module_templates.Wiedmann wrote:Und wenn man CMSMS in eine ut8-db installiert, nicht vergessen, danach den Index in der Tabelle "cms_module_templates" von Hand anzulegen.NaN wrote:Die Datenbank muss man vor der Installation des CMS "von Hand" mit der Option "Operationen" in phpMyAdmin auf UTF-8 setzen.
In deinem Dump gibt es diesen Abschnitt:mm231 wrote:Was muss ich denn nun noch bei module_templates machen?
Code: Select all
CREATE TABLE IF NOT EXISTS `cms_module_templates` (
`module_name` varchar(200) default NULL,
`template_name` varchar(200) default NULL,
`content` text,
`create_date` datetime default NULL,
`modified_date` datetime default NULL,
KEY `module_name` (`module_name`,`template_name`)
) TYPE=MyISAM;
Code: Select all
CREATE TABLE IF NOT EXISTS `cms_module_templates` (
`module_name` varchar(166) default NULL,
`template_name` varchar(166) default NULL,
`content` text,
`create_date` datetime default NULL,
`modified_date` datetime default NULL,
KEY `module_name` (`module_name`,`template_name`)
) TYPE=MyISAM;