kostenloser Webspace werbefrei: lima-city


Umlaute in MySql Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    aklasse

    Kostenloser Webspace von aklasse

    aklasse hat kostenlosen Webspace.

    Hallo,
    ich möchte Umlaute in eine Mysql DB speichern. Der Umlaut kommt aus einem form. wenn ich ihn dann speichere wird z.B. ein Ö als Ö gespeichert. Ich mahce auch mysql_real_escape_string() vor dem speichern.
    Das interessante ist, wenn ich htmlentities() benutze, zusaätulich zu mysql_real_escape_string() benutze dann wandelt er nicht Ö sondern Ö in html Zeichen um, was ebenfalls sinnlos ist.
    ich habe des script in anso kodiert, und habe es dann auch als utf-8 probiert. hier gibt es den selben Fehler, und zusätzlich zeigt der Browser ganz oben einen "absatz" an, obwohl nichts der gleichen im code steht. das ganze design wird dadurch verschoben. offenbar bringt diese kodierung den Browser durcheinander.
    Ich habe schon die Kollation der Mysql db in verschiednestes geändert, aber das bringt gar nichts....

    Also kurz: wie kann ich den Umlaut richtig speichern und warum zeigt der browser mit anderer Kodierung einen Absatz wo nichts dergleichen steht?

    ich sitze daran jetzt schon 3 Stunden, und ihr seid meine letzte hoffnung. Jede auch noch so absurde Idee wird von mir ausprobiert um das zu lösen...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. @aklasse
    yo mey
    hast du schon geprüft, ob deine scripte den gleichen zeichensatz verwenden als dein mysql server? sollte dein mysql utf8 codieren und deine scripte werden von einem 'stinknormalen' editor erstellt, der wahrscheinlich iso--8859-1 o.ä. von sich gibt, dann musst du deine scripte mit iconv o. recode o. dos2unix ... umwandeln (das sind linux utils, unter windows kanst sie mit cygwin verwenden) und anschließend einen guten editor besorgen. natürlich auch dein html sollte utf8 anwenden (<head>...)
  4. Das mit dem Absatz im Browser liegt an der Kodierung der php/html Seite selbst. Z.B. wenn du mit Notepad eine Datei nicht im ANSI Format speicherst.

    Tabellen sollten nach heutigem Standard latin1 kodiert sein. Bei der Ausgabe solltest du ganz oben in der Datei den Header angeben:

    header("Content-Type: text/html; charset=utf-8");


    Sollte es dann immernoch Probleme geben, kannst du utf8_decode($str) bzw. utf8_encode($str) benutzen.

    Ich persönlich speichere mittlerweile fast alles urlencoded, da ich es einfacher finde, die Ausgabe zu optimieren, als am Ende irgendwelche Zeichenfehler in der Datenbank zu beheben (z.B. bei Tschechischen Sonderzeichen oder Chinesisch).

    Möglichkeiten, einen String korrekt in die Datenbank zu schreiben und/oder auszulesen gibt es jedoch viele. Und meistens führen alle über kurz oder lang zum selben Ergebnis.
  5. Autor dieses Themas

    aklasse

    Kostenloser Webspace von aklasse

    aklasse hat kostenlosen Webspace.

    Das Problem war, das der Browser das Formular in UTF 8 abgesendet hat, mein script aber ansi war. Jetzt habe ich auf die Seite
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
    geschreiben die MySql Db in latin1 Swedish umgeändert und eben auch das php Script in ISO-8859-1 konvertiert, was eigentlich so wie so ansi enspricht... jetzt funktioniert es!!

    Vielen Dank für die Info!

    To be closed...
  6. Kleine Anmerkung: Meta wird durch die Servereinstellung überschrieben :)
  7. Autor dieses Themas

    aklasse

    Kostenloser Webspace von aklasse

    aklasse hat kostenlosen Webspace.

    Vorher hats aber nicht funktioniert... D.h. wundert es mich...
  8. Closed, da Problem gelöst.

    @fabo: Ja, wenn der transport layer ein Encoding angibt, dass unterstützt wird, wird der encoding sniffing algorithm mit confidence certain abgebrochen. Das es nicht geklappt hat, liegt warsch. daran, dass beim Content-Type das falsche Encoding gesetzt wurde. Aber egal, das Problem ist ja gelöst :)
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!