Seite 1 von 2
Sonderzeichen futsch (ü = ü)
Verfasst: 12.03.2006 21:28
von IJ
Ich habe ein soeben ein Forum, das etwa ein halbes Jahr down war wieder eingespielt und alles auf dem neuen Server eingerichtet.
Das Problem ist nun, dass alle Sonderzeichen falsch dargestellt werden.
Die stehen schon in der DB falsch drin.
also zb ü = ü oder ö = ö
Wie kann ich das ganze nun wieder hinbekommen?
Vielleicht mit einer MySQL-Abfrage?
Ich bin da nicht so bewandert.
Danke schonmal.
Re: Sonderzeichen futsch (ü = ü)
Verfasst: 13.03.2006 21:14
von vogtsophob
IJ hat geschrieben:Ich habe ein soeben ein Forum, das etwa ein halbes Jahr down war wieder eingespielt und alles auf dem neuen Server eingerichtet.
Das Problem ist nun, dass alle Sonderzeichen falsch dargestellt werden.
Die stehen schon in der DB falsch drin.
also zb ü = ü oder ö = ö
Wie kann ich das ganze nun wieder hinbekommen?
Vielleicht mit einer MySQL-Abfrage?
Ich bin da nicht so bewandert.
Danke schonmal.
Hmm, ein Charset Problem. Ist der Server auf Unicode umgestellt worden? Dann müßte das vermutlich charset im metatag umgestellt werden:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Was steht denn bei dir als charset bei den Seiten drin? Hat jedenfalls nichts mir einer MySQL Abfrage zu tun.
Verfasst: 13.03.2006 21:18
von IJ
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
steht drin.
die verlorenen sonderzeichen stehen anscheinend schon so falsch in der datenbank drin. leider habe ich das backup damals nicht selber gemacht und habe es auch nicht überprüft.
deshalb muss ich jetzt schauen, wie ich aus dem gegebenen das beste wieder raushole.
Verfasst: 13.03.2006 21:24
von vogtsophob
im Primzip könntest du mal sehen, wie die Bytes der Sonderzeichen sind und versuchen, das einen Charset zuzuordnen. (Mühselig). Weiß nicht, ob es auch sein kann, dass die DB jetzt unicode benutzt und das enrsprechen umgeändert hat. Spreicher doch mal den gesendeten HTML code und tausche das "iso-8859-12 gegen "utf-8" aus, und probier mal was passiert wenn dasd das im Browser ansiehst.
Verfasst: 13.03.2006 21:31
von IJ
habe die seite abgespeichert, auf der festplatte den charset geändert und aufgerufen.
irgendwie lustig. mit utf-8 werden nun die falschen sonderzeichen richtig angezeigt, dafür werden alle sonderzeichen, die vorher richtig waren, falsch angezeigt (als fragezeichen in einer raute). also die texte, die zb aus dem template kommen und dort schon als "ü" richtig drin stehen.
Verfasst: 13.03.2006 21:39
von vogtsophob
also ist der Text der Seite in verschiedenen Zeichensätzen, teilweise unicode, teilweise iso8859-1. Das ist natürlich schlecht. Evtl ist MySQL auf unicode (utf-8) umgestellt, und daher alle Zeichen die aus der DB kommen in den Zeichensatz, oder sowas in der Art. Solltest mal googlen, ob das geht, MySQL auf unicode configurieren, oder deinen Provider fragen, ob er was auf unicode umgestellt hat. Auf jeden Fall solltest du mal genau rausfinden welche Teile unicode sind (bei "utf-8" korrekt angezeigt werden) und welche in iso-latin, also bei 8859-1 korrekt angezeigt werden, dass sollte zumindestens die Ursache des Problems zeigen. Evlt kann man es einfach per config der DB ändern, aber evlt kann man dann den entsprechenden Teil der Daten durch eine charcode-Conversion schicken, um die Sache zu retten. Zeichencode Probleme sind immer ziemlich eklig.
Verfasst: 02.06.2006 16:51
von Shimmergloom
Hallo zusammen!
Ich muss diesen Thread mal hochbumpen, da ich quasi vor dem selben Problem stehe:
Wahrscheinlich ist es eher ein phpmyadmin-Problem, aber ich hoffe daß man mir auch hier helfen kann.
Ich würde gerne ein per phpmyadmin erstelltes Backup zurückspielen in eine frische Datenbank. Soweit klappt das auch alles ganz gut, aber auch hier sind alle Sonderzeichen futsch.
Im phpmyadmin steht, daß der SQL-Server mit UTF-8 läuft, also rührt wohl auch da das Problem her.
Versuche ich nämlich die Datenbank mit dem AdminPanel zu sichern und die backup-Datei per bspw. bigdump in eine frisch erstellte Datenbank rücksichern zu lassen, kriege ich andauernd folgenden Fehler:
Code: Alles auswählen
Error at the line 178016: INSERT INTO phpbb_search_wordlist (word_text, word_id, word_common) VALUES('typ', '5388', '0');
Query: INSERT INTO phpbb_search_wordlist (word_text, word_id, word_common) VALUES('typ', '5388', '0');
MySQL: Duplicate entry 'typ' for key 1
Stopped on error
Puh, ihr merkt schon daß ich was das angeht ein ziemlicher Anfänger bin, daher wäre ich über jede Hilfe in der Richtung sehr dankbar!
Also, vielen Dank vorab!!
Verfasst: 02.06.2006 19:25
von IJ
schau mal, in welchem format der text auf der festplatte liegt. bei mir war das backup als unicode gespeichert und ging deswegen nicht. ich habe die textdatei dann einfach als ANSI gespeichert und erneut eingespielt. das ging dann.
Verfasst: 06.06.2006 12:15
von Shimmergloom
Hmmm, das klingt sehr einfach - mit welchem Tool hast du das gemacht?
Verfasst: 06.06.2006 12:20
von IJ
Microsoft ® Editor