Fabian Hänsel fabtagon@gmx.de (Fr 08 Jun 2007 06:42:06 CEST):
Hallo,
ich möchte das mit einer älteren Mediawikiversion erstellte Wiki weiter mit der aktuellen Version nutzen. Das Update lief soweit auch ohne größere Probleme. Nur ein Bereitet macht mir Kopfzerbrechen: Die Zeichensatzkonvertierung. Das beim Mediawiki dafür mitgelieferte Skript verweigert sich aus unerfindlichen Gründen.
iconv oder recode sind für Zeichensatzkonvertierungen gut. Oder auch vim:
export LC_CTYPE=de_DE.UTF-8 vim <DUMP>
- dann sollter er [converted] auf der Statuszeile schreiben, wenn er es von einem anderen Zeichensatz (ISO8859-1 oder so) in UTF konvertiert hat, damit die Darstellung stimmt
:set fileencoding=utf8 :wq
Und fertig.
Daher versuche ich folgendes Vorgehen: SQL-Dump erstellen, rausfinden, was die Entsprechungen im alten und neuen Mediawiki für gewisse Umlaute stehen und dann diese ersetzen. Um alle kleinen ö richtig zu bekommen müsste man folgendes tun (zur besseren Lesbarkeit als hex-Zahlen):
9fc3 0ac2 => 83c3 b6c2 000a
Was ist das für ein Zeichensatz auf der linken Seite? Und rechts? UTF8-o+diaeresis wär c3b6, das taucht ja sogar auf, aber links?
(einen Editor (Kate, NEdit) und dort Replace habe ich bereits probiert, die beiden konvertieren automatisch beim Speichern in "ihre" Zeichensäte)
S.o.
Ansonsten täte ich Perl nehmen:
perl -pe 's/\x9f\xc3/\xc3\xb6/g' <in >out
und das hinreichend oft hintereinander oder etwas aufwendiger mit einer richtigen Tabelle. (Wobei ich immer noch glaube, daß die o.a. Zeichen nicht wirklich stimmen.)