Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Probleme mit Umlauten die sich nicht lösen lassen
#1
Hi,

wegen eines Serverumzugs habe ich per phpmyadmin meine Datenbank gesichert und auf dem neuen Server wieder eingespielt. Leider ist es anscheinend nicht möglich die Umlaute (die korrekt in der SQL-Datei) stehen in die mySQL-Datenbank zu bekommen.

Einige Befehle & Charsets habe ich durch. Jedesmal wenn ich die Umlaute in die Datenbank einspiele (Version 4.1.2) wandelt mySQL sie entweder in Sonderzeichen oder Fragezeichen um. Das Konvertierungsskript was es hier auf der Seite gibt hat nichts geholfen. Auch andere UTF8-Konvertierungsskripte habe nichts geholfen.

So sieht die aktuelle Tabellenstruktur (heute mal ohne Charsets in den SpaltenRolleyes) und das Insert aus:

PHP-Code:
CREATE TABLE `mybb_posts` (
  `
pidint(10unsigned NOT NULL auto_increment,
  `
tidint(10unsigned NOT NULL default '0',
  `
replytoint(10unsigned NOT NULL default '0',
  `
fidsmallint(5unsigned NOT NULL default '0',
  `
subjectvarchar(120) default NULL,
  `
iconsmallint(5unsigned NOT NULL default '0',
  `
uidint(10unsigned NOT NULL default '0',
  `
usernamevarchar(80) default NULL,
  `
datelinebigint(30NOT NULL default '0',
  `
messagetext,
  `
ipaddressvarchar(30) default NULL,
  `
includesigvarchar(3NOT NULL default '',
  `
smilieoffvarchar(3NOT NULL default '',
  `
edituidint(10unsigned NOT NULL default '0',
  `
edittimeint(10NOT NULL default '0',
  `
visibleint(1NOT NULL default '0',
  `
posthashvarchar(32) default NULL,
  
PRIMARY KEY  (`pid`),
  
KEY `tid` (`tid`,`uid`),
  
KEY `uid` (`uid`),
  
KEY `dateline` (`dateline`),
  
FULLTEXT KEY `message` (`message`)
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4830 


PHP-Code:
INSERT INTO `mybb_posts` (`pid`, `tid`, `replyto`, `fid`, `subject`, `icon`, `uid`, `username`, `dateline`, `message`, `ipaddress`, `includesig`, `smilieoff`, `edituid`, `edittime`, `visible`, `posthash`) VALUES (4251551010,'Bitte um Mithilfe!'02,'Pufi'1185813364,'Hallo alle Leute!!\r\n\r\nIch finde das wirklich prima, dass ihr alle so fleißig postet und Bilder hochladet und so... hätte nicht gedacht, dass das Forum so schnell auf so ne betrachtliche Beitragszahl kommt *zu LionLady schiel* \r\n\r\nAber ich würde euch um was bitten: Diese öffentlichen "HochladeSeiten"..............','217.231.86.66','yes','no'001,'f6e3b4ea0834c619f28dfadd350bf664'); 


Habt Ihr eine Idee wie ich das Problem lösen kann? Diverse PHP- und mySQL-Foren habe ich durch, dort konnte mir bisher leider niemand helfen.

Danke im Vorraus,

mfg

Hyper
#2
Hier findest du eine gute Erklärung der Problematik: http://www.mysqldumper.de/board/viewtopic.php?t=2313

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#3
Um das Problem nochmals aufzuwärmen:
Habe die Erklärung der Problematik durchgelesen, bin etwas schlauer, aber noch nicht schlau genug.

Nach einem Serverumzug wurden auch bei mir die Umlaute falsch dargestellt. Ich habe das convert-encoding.php-Script verwendet, und die Sonderzeichen im Forum passen wieder. Nicht so in phpMyAdmin. Und leider auch nicht in den Dumps, die die forumseigene Backup-Funktion erstellt. Hier Sind die Umlaute immer noch falsch.
Ich habe dann testhalber ein Forum frisch installiert, und auch hier werden im Forum die Sonderzeichen korrekt dargestellt (sowohl mit als auch ohne utf8-Header Plugin), aber in phpMyAdmin nicht. Auch die Dumps, die mit MySqlDumper erstellt wurden, zeigen dasselbe Problem.
Wenn ich die Tabellen in phpMyAdmin so importiere, dass sie dort richtig angezeigt werden, passt es wiederum im Forum nicht. convert-encoding.php behebt das, usw.
Warum stimmt es einmal und einmal nicht?

Ich habe jetzt schon stundenlang rumprobiert, aber ich finde den Grund dafür nicht.
Ich verwende phpMyAdmin 2.6.1, MySQL 5.0.22 auf einem Linux-Server.
Beim Anlegen der DB habe ich als Kollation utf8_general_ci eingestellt (obwohl das ja nicht wichtig sein soll). Als Verbindungskodierung habe ich German (utf8) angegeben.

Liegt es an phpMyAdmin? Ich wüsste nicht, wo ich sonst noch drehen könnte. Oder kennt jemand ein Programm/ Script, mit dem ich brauchbare Dumps erstellen kann? Selbst mit MySqlDumper hat es nicht geklappt...
#4
Wie du selbst siehst ist das leider eine weitreichende Problematik. Wie es bei dir am besten funktioniert kann ich nicht sagen. Dass die Umlaute in phpMyAdmin selbst nicht korrekt dargestellt werden liegt vermutlich einfach daran, dass das Encoding der Seite (phpMyAdmin) nicht mit der Kodierung der angezeigten Daten übereinstimmt.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.