Page 1 of 1
Anleitung zur Konvertierung in UTF-8?
Posted: Sat Jul 29, 2006 5:17 pm
by ocj
Gibt es irgendwo eine einfache Anleitung, in der erklärt wird, wie man sein Blog inkl. aller Einträge von ISOXXX auf UTF-8 umstellen kann?
Oder gibt es gar eine s9y-Funktion, die das kann?
Re: Anleitung zur Konvertierung in UTF-8?
Posted: Mon Jul 31, 2006 1:35 pm
by garvinhicking
Hi!
Da dies sehr viel Datenbankgeraffel beinhaltet, gibt es leider keine "Out of the Box" Funktion.
Ich hatte mal einiges zu dem Thema geschrieben, leider finde ich es aber nicht wieder.
Die Essenz war:
1. Datenbank-Dump (SQL) erstellen - Nur DATEN nicht die Struktur.
2. SQL-Datei ins UTF-8 Format umstellen
3. Alle DB Tabellen auf UTF-8 Collation umstellen und Tabellen leeren
4. Den Datenbankdump wieder importieren
5. Serendipity auf UTF-8 konfigurieren.
Hört sich komplizierter an als es ist.

Man kann Schritt 1+3 kombinieren wenn man im SQL-Dump einfach die Collations z.B. von latin1 auf utf8 per suchen und ersetzen umschreiben und dann den kompletten Dump neu hochlädt...
Viele Grüße,
Garvin
Posted: Thu Aug 10, 2006 1:54 pm
by ocj
Wie muß ich denn die Daten dumpen?
Als "vollständige INSERTs" oder als "erweiterte INSERTs" oder gar anders?
Ich habe von SQL keinen Plan, möchte aber heute endlich meine Datenbank umstellen.
Danke im Voraus!
Posted: Thu Aug 10, 2006 2:00 pm
by garvinhicking
Hi!
Wie Du die Daten dumpst ist egal. Vollständige INSERTs sind einfacher zu warten in einem Editor.
Viele Grüße,
Garvin
Posted: Thu Aug 10, 2006 2:03 pm
by ocj
Ok, ich habe vollständige INSERTS gedumpt.
Nun finde ich dort aber keine Einträge, die auf latin hinweisen.
Ich nehme an für
Man kann Schritt 1+3 kombinieren wenn man im SQL-Dump einfach die Collations z.B. von latin1 auf utf8 per suchen und ersetzen umschreiben und dann den kompletten Dump neu hochlädt...
muß man dann doch Daten und Struktur dumpen. Richtig?
Posted: Thu Aug 10, 2006 2:09 pm
by garvinhicking
Hi!
Eine Umstellung auf UTF-8 Collations mit dem genantnen Vorgehen klappt nur wenn Du MySQL >= 4.1 benutzt und ein aktuelles phpMyAdmin...
muß man dann doch Daten und Struktur dumpen. Richtig?
Jau.
Viele Grüße,
Garvin
Posted: Thu Aug 10, 2006 2:11 pm
by ocj
Noch eine dumme Frage:
Muß ich latin1 durch "utf8" oder durch "utf-8" ersetzen?
Posted: Thu Aug 10, 2006 2:14 pm
by garvinhicking
Hi!
Durch 'utf8'.
Grüße,
Garvin
Posted: Thu Aug 10, 2006 5:50 pm
by ocj
Soweit hat alles super geklappt.
Ich habe nur noch ein kleines Problem. Auf den Artikel-Seiten erscheint folgender Text:
Dieser Eintrag wurde geschrieben von del.icio.us am Mittwoch, 9. August 2006 um 00:22. Sie k?nnen einen Kommentar hinterlassen, oder ein Trackback von Ihrem eigenen Blog senden. Alle neuen Kommentare werden moderiert, bevor sie auf dieser Seite erscheinen.
Beispiel:
http://www.yadayada.de/167-links-for-2006-08-08.html
Warum steht da nicht "können"? Wo kann ich das ändern?
Vielen Dank, Garvin! Du bist echt
der Grund für s9y!
Posted: Thu Aug 10, 2006 5:56 pm
by garvinhicking
Hi!
Hm, das kann ich auf der von Dir genannten URL nicht sehen? Sowas kann passieren wenn ein Template eine Sprachdatei nicht als UTF-8 Datei benutzt hat oder wenn Du den Text manuell in einer .tpl datei nicht im UTF-8 Format gespeichert hast?
Viele Grüße,
Garvin
Posted: Fri Aug 11, 2006 1:20 pm
by ocj
Noch ein kleiner Tip von mir:
Ich habe mit zwei Datenbanken gearbeitet. Das Original und die Zieldatenbank. Wäre bei der Konvertierung was schief gegangen, hätte ich wieder auf die ursprüngliche Datenbank umgestellt (im laufenden Betrieb).
So fällt das Blog nicht mal eine Minute aus.
ocj
Posted: Thu Nov 22, 2007 12:16 pm
by edufl13
Hab das gerade mal versucht:
CREATE TABLE `s9y_exits` (
`entry_id` int( 11 ) NOT NULL default '0',
`day` date NOT NULL ,
`count` int( 11 ) NOT NULL default '0',
`scheme` varchar( 5 ) default NULL ,
`host` varchar( 128 ) NOT NULL ,
`port` varchar( 5 ) default NULL ,
`path` varchar( 255 ) NOT NULL default '',
`query` varchar( 255 ) default NULL ,
PRIMARY KEY ( `host` , `path` , `day` , `entry_id` ) ,
KEY `exits_idx` ( `entry_id` , `day` , `host` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8;
MySQL meldet: Dokumentation
#1071 - Specified key was too long; max key length is 1000 bytes
Bei MySQL gibts auch einen Bug hierzu:
http://bugs.mysql.com/bug.php?id=4541
Muss das Feld eigentlich so groß sein?
