Umlaute und alle nachfolgenden Zeichen werden gelöscht
#1
Hi, bin zur Zeit dabei das Forensystem Discuz 6.0.1 ins Deutsche zu übersetzen. Leider scheint das System ein Problem mit Umlauten zu haben, denn alle Daten, die in die Datenbank gespeichert werden, werden um die Umlaute und alle nachfolgenden Zeichen gekürtzt. Ich kann einen noch so langen Text verfassen, ab dem ersten Umlaut ist nichts mehr zu sehen.
Die Kollation der Tabellen ist utf8_general_ci, mit welcher ich bis jetzt keine Probleme hatte. Kurze Zeit spielte ich mit einer Lösung herum, einfach in der common.php, die String in der Variablen-Übernehmungs-Schleife mit htmlentities() zu escapen. Allerdings ist dies nicht sehr sinnvoll, da Strings gewöhnlich erst bei der Ausgabe escapet werden sollten (leider keine Umlaute mehr dazu vorhanden).
Ausserdem werden die MySQL-Abfragen in einigen Bereichen der Software zusätzlich noch escapet, wodurch nette Ausgaben wie"Übersetzung" herauskommen.
Meine Frage ist nun:
Woran kann das liegen? Ich bin mir sehr sicher, dass dies nicht am Forum, sondern an der Datenbank liegt. Die Daten verschwinden schon bei dem Insert in die Datenbank. Ich hab schon öfters von derartigen Bugs in UTF8 gehört, hatte bisher jedoch keine solchen Probleme. Bin also ziemlich verwirrt und hilflos.
Mfg. Odious
  Zitieren
#2
Also ich arbeite schon seit ewigkeiten mit moka5 ( virtualisierungssoftware ) und da gibts schon schönes webdevelopment packet wo alles schön vorinsallt und konfiguriert ist.
Nur leider von einem ami -> alles schön mit utf-8 etc.

Da ist dieser Bug standart ... inzwischen hab ich alles auf iso umgestelt ... jetzt geht auch alles prima ...
Warum also nicht auf iso umstellen ?
greetings,
Moritz

Follow me on twitter !
  Zitieren
#3
Hm, mir war dieser Bug noch nicht bekannt. Dachte, das liege irgendwo an der Konfiguration. Wenn ich mir jedenfalls im Vergleich die Tabellen des Mybboards ansehe (auch utf8_general_ci) beinhalten diese unkodierte Umlaute. Verwirrung....

Naja, am Code wollte ich eig. nichts verändern. Aber dann werd mich wohl auf die Suche machen...
Mfg. Odious
  Zitieren
#4
So, ich bin jetzt wirklich am Verzweifeln...
Ich hab die Kollation in utf8_unicode_ci (die bis jetzt immer problemlos ging) geändert. Das Problem besteht jedoch weiterhin. Ausserdem hab ich jetzt ein paar meiner installierten Forensysteme überprüft und festgestellt, das einige die Kollation utf8_general_ci verwenden. Diese funktionieren wunderbar.

Liegt wohl doch an der Forensoftware. Wenn ich nur nen Anhaltspunkt hätte. >.< Hab letztes Mal schon verzweifelt nach dem Fehler gesucht. Hätte irgendjemand hier ne Idee, woran das liegen könnte?
Wäre sehr dankbar!
Mfg. Odious
  Zitieren
#5
Kann mir nicht vorstellen das dieses an der Datenbank liegen soll, Immerhin ist das nur eine Codierung wenn dan würdest du schlimsten falls hieroglyphen erhalten.

Wie schaut das ganze aus wenn du einen INSERT über phpMyAdmin machst?

Und gibst du dieses utf8_encode() utf8_decode() an ??? Das ist sehr wichtig für Umlaute. Das wäre es mit meinen Lösungsvorschlägen probiers aus Smile

Was mir auch noch dazu einfallen würde, Ich hatte mal ein Problem das der browser ISO Eingestellt war aber die Seite auf UTF-8. Das problem war das dort nur Chaotische Zeichen zustande kamen. Vielleicht mal mit anderen Browsern testen.
  Zitieren
#6
Danke, habs aber doch noch selbst rausgefunden Smile

mit utf8_decode() alles noch zu dekodieren, wär aber doch sehr umständlich gewesen, da ein ziemlich großer teil der dateien verändert werden müsste. hab dann die kodierung mittels
header("Content-type: text/html; charset=utf-8"); festgelegt, damit bei der standardkonfiguration die umlaute korrekt dargestellt werden. (wens interessiert Wink)

Mfg. Odious
  Zitieren
#7
na hatte ich ja gar nicht so unrecht gehabt mit der codierung und dem verstehen des browsers Wink
  Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste