Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Umlaute werden falsch in der Datenbank gespeichert.

kaninchen01 / 31 Antworten / Baumansicht Nickles

Hallo zusammen, ich habe eine webseite auf der man text eingeben kann, dieser text wird dann in einer datenbank gespeichert. Leider werden dabei die umlaute "verzerrt" gespeichert, als Zeichenfolge von 4 oder 5  unsinnigen zeichen. Wie kann man diesen Fehler beheben ?

bei Antwort benachrichtigen
Andreas42 kaninchen01 „Umlaute werden falsch in der Datenbank gespeichert.“
Optionen

Da muss man in Richtung Zeichensatzkodierung schauen (ich denke speziell an Unicode). Solche Fehler passieren wenn ein Unicode in einem nicht Unicode kodiertem Feld gespeichert wird oder ein Export als Unicode ausgebe. Und dann z.B. ASCII basiert verarbeitet wird. Da fehlt entweder beim Speichern in der Datenbank oder nach dem Auslesen zum Weiterverarbeitung eine Umwandlung der Zeichencodierung.

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
schoppes kaninchen01 „Umlaute werden falsch in der Datenbank gespeichert.“
Optionen

Hallo,

zwei Nachfragen:
1. Hast du die Seite selbst erstellt oder hat die ein "Profi" programmiert?
Denn dann wäre es eine Aufgabe für den "Profi".
2. Verstehe ich das richtig, dass man auf deiner Webseite ein Formular/Kontaktformular als User ausfüllen kann, das dann anschließend gespeichert wird und wieder, bei Bedarf, hervorgeholt wird/werden soll ... natürlch in einer lesbaren Form?

Ich glaube, es hat irgendwas mit UTF-8 zu tun.

Aber ich habe von der Materie wirklich keine Ahnung.
Deswegen bin ich jetzt hier raus und überlasse das Feld denjenigen, die von Webseitenprogrammierung Ahnung haben.

https://www.designerinaction.de/tipps-tricks/web-development/html-umlaute-sonderzeichen/

Ciao

"Früher war alles besser. Sogar die Zukunft." (Karl Valentin)
bei Antwort benachrichtigen
mawe2 kaninchen01 „Umlaute werden falsch in der Datenbank gespeichert.“
Optionen
Leider werden dabei die umlaute "verzerrt" gespeichert, als Zeichenfolge von 4 oder 5  unsinnigen zeichen.

Kannst Du mal ein paar Beispiele zeigen?

bei Antwort benachrichtigen
kaninchen01 mawe2 „Kannst Du mal ein paar Beispiele zeigen?“
Optionen

Hier ein Beispiel:

bei Antwort benachrichtigen
Andreas42 kaninchen01 „Hier ein Beispiel:“
Optionen

Das ist eine der HTML Anzeigevarianten, wenn UTF-8 Texte nicht als UTF-8 kodierter Text ausgegeben werden.

Ich bin jetzt nicht der große Web-Entwickler (ich schlage mich mit ERP Software von Infor herum, da liegt auch eine Datenbank zwischen Ein- und Ausgabe. Die Zeichenkodierung ist dort genauso ein Thema).

Ich würde mit diesen Erklärungen anfangen:

https://stackoverflow.com/questions/22443288/in-a-html-file-with-charset-utf-8-do-i-still-need-to-replace-umlauts-with-auml

Dort wird noch hierhin verlinkt:

https://stackoverflow.com/questions/5733336/utf-8-characters-dont-display-correctly/5733374#5733374

Es geht letztendlich darum, dass die Datenformate in der Datenbank zur Kodierung bei ein und Ausgabe passen müssen.

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
mawe2 kaninchen01 „Hier ein Beispiel:“
Optionen

Danke für das Beispiel.

Schoppes und Andreas42 haben ja schon wichtige Hinweise dazu gegeben.

Für weitere Hilfestellungen wäre es dann sicherlich gut, wenn Du das gesamte Prozedere, um das es geht, etwas besser beschreiben könntest.

webseite auf der man text eingeben kann, dieser text wird dann in einer datenbank gespeichert

ist leider etwas zu allgemein, um als Außenstehender zu erkennen, wo genau das Problem nun auftritt.

bei Antwort benachrichtigen
kaninchen01 mawe2 „Danke für das Beispiel. Schoppes und Andreas42 haben ja schon wichtige Hinweise dazu gegeben. Für weitere Hilfestellungen ...“
Optionen

Die Seite heisst Bottlemail.de

Und der Fehler passiert dann wenn jemand eine Bottlemail eintippt und diese dann absendet. Die wird dann in der Datenbank gespeichert.

bei Antwort benachrichtigen
mawe2 kaninchen01 „Die Seite heisst Bottlemail.de Und der Fehler passiert dann wenn jemand eine Bottlemail eintippt und diese dann absendet. ...“
Optionen

Ich habe jetzt eine Seite gefunden, die das Thema sehr übersichtlich darstellt:

https://html-einfach.de/html-umlaute-richtig-darstellen/

Dort wird auch auf die Formular- und die Datenbank-Problematik eingegangen.

Und der Fehler passiert dann wenn jemand eine Bottlemail eintippt und diese dann absendet. Die wird dann in der Datenbank gespeichert.

Das Speichern in der Datenbank ist doch aber sicher noch nicht das Letzte, was mit dem eingegebenen Text gemacht wird.

Wie geht es denn dann weiter?

Und wo ist das Fehlen echter Umlaute denn dann besonders problematisch?

Man könnte ersatzweise auch ein Script nutzen, das die HTML-Entities wieder in normale Umlaute umwandelt.

bei Antwort benachrichtigen
kaninchen01 mawe2 „Ich habe jetzt eine Seite gefunden, die das Thema sehr übersichtlich darstellt: ...“
Optionen

Na wie du siehst geht es hier um flaschenpost. Wenn alles passt wird der text, also die flaschenpost als email verschickt

bei Antwort benachrichtigen
hatterchen1 kaninchen01 „Na wie du siehst geht es hier um flaschenpost. Wenn alles passt wird der text, also die flaschenpost als email verschickt“
Optionen

Na dann ersetze doch die Umlaute.
ä=ae, ü=ue, ö=oe, ß=ss

Ist im englischen so üblich und versteht auch jeder, oder?Unentschlossen

Gestottertes Wissen ist besser als eloquente Dummheit. Marcus Tullius Cicero (106 - 43 v.Chr.Rom) Staatsmann und Philosoph
bei Antwort benachrichtigen
kaninchen01 hatterchen1 „Na dann ersetze doch die Umlaute. ä ae, ü ue, ö oe, ß ss Ist im englischen so üblich und versteht auch jeder, oder?“
Optionen

Warum soll ICH die ersetzen ? Das ganze läuft autark ohne mir ! Warum soll ich jede einzelne bottlemail bearbeiten ? Ist das dein ernst ?

bei Antwort benachrichtigen
schoppes kaninchen01 „Warum soll ICH die ersetzen ? Das ganze läuft autark ohne mir ! Warum soll ich jede einzelne bottlemail bearbeiten ? Ist ...“
Optionen

Na ja!

Warum soll ich jede einzelne bottlemail bearbeiten ? Ist das dein ernst ?

Keinem Helfer ist klar, welche Rolle du eigentlich bei bottlemail.de spielst.

Du hast leider meine 1. Frage nicht beantwortet:

1. Hast du die Seite selbst erstellt oder hat die ein "Profi" programmiert? Denn dann wäre es eine Aufgabe für den "Profi".

Oder bist du nur ein Anwender, der solche Emails bekommt?

Auf der Seite heißt es:
"Im Juli 2024 wurde die Flaschenpost Versenderoutine von Justus Pilgrim (Variomedia) radikal überarbeitet, und seitdem arbeitet Bottlemail.de hervorragend, nahezu wartungsfrei und autark."

Falls du nur ein einfacher User bist, dann wäre hier die erste Beschwerdeadresse:
https://bottlemail.de/kontakt.php

"Früher war alles besser. Sogar die Zukunft." (Karl Valentin)
bei Antwort benachrichtigen
kaninchen01 schoppes „Na ja! Keinem Helfer ist klar, welche Rolle du eigentlich bei bottlemail.de spielst. Du hast leider meine 1. Frage nicht ...“
Optionen

Ich bin der besitzer der seite

bei Antwort benachrichtigen
schoppes kaninchen01 „Ich bin der besitzer der seite“
Optionen
Ich bin der besitzer der seite

Bist du auch der Programmierer?
Warum weichst du dieser Frage eigentlich aus?

In den Links von mawe2, Andreas42 oder mir findest du genügend Hinweise, wie das Problem zu händeln ist.

edit:
Nebenbei bemerkt:
Das "Impressum" ist ja wohl ein Witz. Überrascht
https://bottlemail.de/fehler404.php?error=404

"Früher war alles besser. Sogar die Zukunft." (Karl Valentin)
bei Antwort benachrichtigen
mawe2 schoppes „Bist du auch der Programmierer? Warum weichst du dieser Frage eigentlich aus? In den Links von mawe2, Andreas42 oder mir ...“
Optionen
Nebenbei bemerkt: Das "Impressum" ist ja wohl ein Witz.

Hast Du eins gefunden?

bei Antwort benachrichtigen
schoppes mawe2 „Hast Du eins gefunden?“
Optionen
Hast Du eins gefunden?

Ja, aber nur auf Umwegen:
https://bottlemail.de/datenschutz.php

===> "Link zum Impressum"

"Früher war alles besser. Sogar die Zukunft." (Karl Valentin)
bei Antwort benachrichtigen
mawe2 schoppes „Na ja! Keinem Helfer ist klar, welche Rolle du eigentlich bei bottlemail.de spielst. Du hast leider meine 1. Frage nicht ...“
Optionen

Der Justus müsste vielleicht noch den PHP-Fehler beseitigen, der auf der Startseite ganz unten zu sehen ist. Dabei kann er dann auch gleich noch das Umlaut-Problem lösen.

bei Antwort benachrichtigen
kaninchen01 mawe2 „Der Justus müsste vielleicht noch den PHP-Fehler beseitigen, der auf der Startseite ganz unten zu sehen ist. Dabei kann er ...“
Optionen

Der justus muss gar nix machen, ich habe euch gefragt was ICH machen soll.

bei Antwort benachrichtigen
mawe2 kaninchen01 „Der justus muss gar nix machen, ich habe euch gefragt was ICH machen soll.“
Optionen

Das ist jetzt aber wirklich schwierig, Dir irgendwie zu helfen!

Nun hast Du ja den Thread schon als "beantwortet" gekennzeichnet. Das Problem ist für Dich also offensichtlich gelöst.

Es wäre nett, wenn Du die Lösung für alle Mitleser hier nochmal kurz darstellen würdest.

bei Antwort benachrichtigen
kaninchen01 mawe2 „Das ist jetzt aber wirklich schwierig, Dir irgendwie zu helfen! Nun hast Du ja den Thread schon als beantwortet ...“
Optionen

Es ist nicht gelöst, ich habe nur keine nerven mehr wenn hier sachen bemängelt werden bzw wenn sich einer über sachen lustig macht die gar nix mit meiner frage zu tun haben.

bei Antwort benachrichtigen
mawe2 kaninchen01 „Es ist nicht gelöst, ich habe nur keine nerven mehr wenn hier sachen bemängelt werden bzw wenn sich einer über sachen ...“
Optionen
Es ist nicht gelöst, ich habe nur keine nerven mehr wenn hier sachen bemängelt werden bzw wenn sich einer über sachen lustig macht die gar nix mit meiner frage zu tun haben.

Es macht sich doch niemand lustig!

Nach der Impressumsthematik hattest Du zwar nicht gefragt, den Hinweis von schoppes solltest Du aber trotzdem ernst nehmen, denn ein fehlendes Impressum kann zu juristischen Problemen führen, die Du sicher nicht unbedingt haben willst.

(Auch andere Sachverhalte auf Deiner WebSite bedürfen einer juristischen Unterstützung. Aber da Du danach nicht gefragt hast, soll das jetzt auch nicht thematisiert werden. Schließlich ist das hier auch kein juristisches Forum.)

Problematisch für die Hilfestellung ist lediglich, dass man jedes wichtige Detail immer erst scheibchenweise und immer erst nach weiterer Nachfrage von Dir geliefert bekommt.

Übrigens: Die Fehlermeldung beim (fehlenden) Impressum ist identisch mit der Fehlermeldung auf der Startseite. Es handelt sich in beiden Fällen um diese Meldung:

Fatal error: Cannot redeclare phpmail() 
(previously declared in /homepages/u24445/phpmail.php:12) 
in /homepages/u24445/phpmail.php on line 81

Aus dieser Meldung kann man mindestens mal entnehmen, dass hier PHP zur Anwendung kommt.

Das wäre z.B. ein Fakt gewesen, den Du am besten schon im Startposting erwähnt hättest.

Da es sich hier offensichtlich um einen Fehler in der Datei phpmail.php handelt, deutet vieles darauf hin, dass PHP durchaus auch für das Umlautproblem in den E-Mails relevant sein könnte.

Und wenn der Herr Justus Pilgrim das gesamte E-Mail-Handling auf PHP-Basis aktuell bearbeitet hat, ist das durchaus ein Fall, bei dem man ihn zu Rate ziehen sollte.

Ich bin jetzt leider kein PHP-Experte, kann Dir aber zumindest sagen, dass Du wahrscheinlich PHP-Kenntnisse brauchen wirst, wenn Du hier selber eingreifen willst.

Evtl. müsstest Du dann auch den fraglichen PHP-Code hier posten, damit ein evtl. hier mitlesender PHP-Experte Dir Tipps geben kann.

btw: Um welches Datenbanksystem handelt es sich denn eigentlich?

bei Antwort benachrichtigen
kaninchen01 mawe2 „Es macht sich doch niemand lustig! Nach der Impressumsthematik hattest Du zwar nicht gefragt, den Hinweis von schoppes ...“
Optionen

Herr pilgrim hat mir lediglich  bei der versenderoutine geholfen. Das war alles. Er hat nichts mit der seite zu tun. Könnt ihr mal aufhören ständig herr pilgrim zu erwähnen ?

Welches datenbanksystem ? Wo sieht man denn welches das ist ?

bei Antwort benachrichtigen
mawe2 kaninchen01 „Herr pilgrim hat mir lediglich bei der versenderoutine geholfen. Das war alles. Er hat nichts mit der seite zu tun. Könnt ...“
Optionen
Welches datenbanksystem ? Wo sieht man denn welches das ist ?

Mit welchem Tool schaust Du Dir denn die Daten in den Datenbanktabellen an?

Evtl. kannst Du auch in dem Verwaltungstool Deines Web-Hosters erfahren, was da für eine Datenbank läuft.

Aber irgendwie macht mich das Ganze dann doch sprachlos:

Du bist Besitzer einer jahrelang genutzten Online-Anwendung und kennst diese absolut notwendigen Basisinformationen nicht?

Hast Du die WebSite von jemandem geerbt, der verstorben ist und der Dir nichts mehr dazu sagen kann?

bei Antwort benachrichtigen
kaninchen01 mawe2 „Mit welchem Tool schaust Du Dir denn die Daten in den Datenbanktabellen an? Evtl. kannst Du auch in dem Verwaltungstool ...“
Optionen

Ja der programmierer ist tot

bei Antwort benachrichtigen
mawe2 kaninchen01 „Ja der programmierer ist tot“
Optionen

OK.

Das ist ein besonderer Umstand, der natürlich eine außergewöhnliche Herausforderung darstellt.

Allerdings befürchte ich, dass es mit der schriftlichen Unterstützung hier im Forum nur schwer möglich sein wird, das Problem zu lösen.

Konntest Du denn schon zum Datenbanksystem etwas in Erfahrung bringen?

Oft basieren solche Lösungen auf MariaDB. Da die Scriptsprache offensichtlich PHP ist, könnte man die gesamte WebSite für die lokale Entwicklungsarbeit auf einem sog. "XAMPP" laufen lassen.

https://de.wikipedia.org/wiki/XAMPP

Denkbar sind aber auch diverse andere Datenbanksysteme / Datenbankserver.

Wenn Du bisher mit Datenbanksystemen, Scriptsprachen usw. nicht zu tun hattest, wirst Du sehr viel Einarbeitungszeit einplanen müssen.

Evtl. wird Dir ein spezialisierter Dienstleister da schneller weiterhelfen können?

Wenn der bisherige Programmierer Zugangsdaten / Kennwörter etc. verwendet hat, die jetzt niemand kennt, dürfte ein kompletter Neuaufbau / eine Neuprogrammierung der WebSite die schnellste Lösung sein...

bei Antwort benachrichtigen
schoppes mawe2 „Es macht sich doch niemand lustig! Nach der Impressumsthematik hattest Du zwar nicht gefragt, den Hinweis von schoppes ...“
Optionen

Genau so habe ich das gemeint:

den Hinweis von schoppes solltest Du aber trotzdem ernst nehmen, denn ein fehlendes Impressum kann zu juristischen Problemen führen, die Du sicher nicht unbedingt haben willst.

Ich hätte das wohl besser dazu schreiben sollen.

Abmahnungen bei fehlendem Impressum hat es in den letzten Jahren schon mehrfach gegeben (kann wohl bis zu 50000 € kosten).

"Früher war alles besser. Sogar die Zukunft." (Karl Valentin)
bei Antwort benachrichtigen
Borlander kaninchen01 „Hier ein Beispiel:“
Optionen

Das von Dir gezeigte Beispiel mit HTML-Entities ist unabhängig von der eingesetzten Zeichensatzcodierung und erlaubt eine Abbildung von Sonderzeichen selbst mit eingeschränkten Zeichensätzen.

Stehen die Werte denn tatsächlich exakt so wie im Beispiel gezeigt in der Datenbanktabelle, oder erscheinen Sie erst bei Ausgabe? Könnte z.B. passieren wenn doppelt encodiert wird.

bei Antwort benachrichtigen
kaninchen01 Borlander „Das von Dir gezeigte Beispiel mit HTML-Entities ist unabhängig von der eingesetzten Zeichensatzcodierung und erlaubt eine ...“
Optionen

Ja, sie stehen exakt so in der datenbanktabelle

bei Antwort benachrichtigen
Anne_21 kaninchen01 „Ja, sie stehen exakt so in der datenbanktabelle“
Optionen
so in der datenbanktabelle

Hast Du mal geschaut, welcher Zeichensatz - fachsprachlich Code -  in der bottle-dingsda verwendet wird - und vor allem welcher in der sogenannten Datenbank?

In letzterer ist es jedenfalls einer, bei dem es keine Umlaute wie ä und ü... gibt - oder nicht der gleiche wie bei der Flasche.

Mach Dich kundig zu den eingesetzten Codes.
Den Quellcode der Seite anschauen!

Ich habe vor langer Zeit mit Daten auch aus nicht-deutschen Ländern und Versionen einer web-Seite in verschiedenen Sprachen gearbeitet, die international eingesetzt wurde.
Für die Daten war für mich nichts weiter wichtig als zu bestimmen, welche Codetabellen für die Daten, die ich bearbeiten sollte, verwendet wurden.
Erst dann konnte ich die Daten verwenden und auswerten - natürlich nach dem Umwandeln in den entsprechenden UTF8-Code, der bei meiner Arbeit eingesetzt wurde.

Also die Lösung scheint mir in den Antworten von Andreas oben genannt zu sein.
Müsstest Du Dich mal mit beschäftigen - und gucken, ob und wie die Codes angeglichen werden können.

HTH,
Anne

bei Antwort benachrichtigen
mawe2 Anne_21 „Hast Du mal geschaut, welcher Zeichensatz - fachsprachlich Code - in der bottle-dingsda verwendet wird - und vor allem ...“
Optionen
In letzterer ist es jedenfalls einer, bei dem es keine Umlaute wie ä und ü... gibt - oder nicht der gleiche wie bei der Flasche.

Woher willst Du das wissen?

Auch wenn die Datenbank mit UTF-8 arbeitet, kann irgendein Script dort solche HTML-Entities reinschreiben.

bei Antwort benachrichtigen
Anne_21 Nachtrag zu: „Hast Du mal geschaut, welcher Zeichensatz - fachsprachlich Code - in der bottle-dingsda verwendet wird - und vor allem ...“
Optionen

Nachsatz: Das ist nicht so ganz einfach mit dem Code - die web-Seite und Datenbank muss nicht im gleichen Code geschrieben sein wie die Daten dargestellt werden.

Der Verweis auf die Antworten von Andreas42 oben sind der Schlüssel zur Lösung.

Anne

bei Antwort benachrichtigen