1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Probleme mit UTF-8

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von galdo, 15.07.07.

  1. galdo

    galdo Auralia

    Dabei seit:
    02.06.06
    Beiträge:
    201
    Hallo,

    ich verwende auf meinem blog ein System, dass mit UTF8-Strings arbeitet. Mein Server ist ebenfalls auf UTF8 konfiguriert. Jetzt habe ich ein kleines Webtool geschrieben, mit dem ich einfach Form-Einträge in ein Textfile parsen kann, dass möglichst UTF-8 kodiert sein soll, um auch Umlaute korrekt anzuzeige. Wenn ich mittels eines Tools bei mir auf dem Macbook eine entsprechende Datei erzeuge und die UTF8-kodierung aktiviere, funktioniert alles so wie es soll - der Fehler liegt also definitiv beim Schreiben mit der Webapp:

    Form:
    Code:
        echo "<br><div id=\"content\" style=\"border:1px solid grey;\">";
        echo "<h3>".$lang['create']."</h3>";
        echo "<div style=\"text-align:right;font-size:10pt;padding-right:10pt;\"><a href=\"http://blog.galdo.de\">".$lang['back']."</a></div>";
        echo "<form method=\"post\">";
        echo "<br><table>\n";
        echo "<tr></tr><tr></tr><tr><td id=\"info\">".$lang['file'].":</td><td id=\"info2\"><input type=\"text\" name=\"filename\" size=\"50\">.qb</td></tr>\n";
        echo "<tr><td id=\"info\">".$lang['title'].":</td><td><input type=\"text\" name=\"title\" size=\"50\"></td></tr>\n";
        echo "<tr><td id=\"info\">".$lang['tags'].":</td><td><input type=\"text\" name=\"tags\" size=\"50\"></td></tr>\n";
        echo "<tr><td id=\"info\">".$lang['via'].":</td><td><input type=\"text\" name=\"via\" size=\"50\"></td></tr>\n";
        echo "<tr><td id=\"info\">".$lang['content'].":</td><td><textarea rows=\"14\" cols=\"48\" name=\"entry\"></textarea></td></tr>\n";
        if (empty($config['passwd']) === FALSE) {   //password needed to post
            echo "<tr><td id=\"info\">".$lang['password'].":</td><td><input type=\"password\" name=\"password\" size=\"50\"></td></tr>\n";
        }
        echo "<tr></tr><tr><td></td><td><input type=\"submit\" name=\"btOK\" value=\"".$lang['publish']."\"></td></tr>";
        echo "<tr></tr><tr></tr></table>\n";
        echo "</form></div>";
    
    Das Schreiben in das File
    Code:
                //write utf8 coded lines to file
                fwrite($handle, utf8_encode("<title:".$title."><tags:".$tags.">"));
                if (empty($via) === FALSE) fwrite($handle, utf8_encode("<via:<<".$via.">>>\n")); else fwrite($handle, "\n");
                fwrite($handle, ("<p>\n".utf8_encode(nl2br($entry))."</p>\n"));
                fclose($handle);
    
    PHP-Header am Anfang der Datei:
    Code:
        header("content-type: text/html; charset=utf-8");
    Die Seite kann auf blog.galdo.de/create.php aufgerufen werden!
    Ich weiß leider nicht mehr weiter, die Umlaute sehen bei mir immer so zerstört aus, wenn ich mittels des Webtools das File erzeuge :(

    Hat einer von euch eine Idee?

    Danke GALDO
     
  2. ma.buso

    ma.buso Châtaigne du Léman

    Dabei seit:
    16.04.05
    Beiträge:
    824
    Wenn alle deine Scripte utf-8 codiert sind, musst du den String den du ins text-file schreibst, nicht noch extra codieren.

    Welche Umlaute sehen denn zerstört aus? Die im text-file oder bei der Ausgabe via Script?
     
  3. galdo

    galdo Auralia

    Dabei seit:
    02.06.06
    Beiträge:
    201
    Die Bugs sind alles schon im textfile vorhanden - sprich da sind schon die Umlaute falsch codiert. Ich dachte nur UTF-8 kodierte fonts in UTF-8 zu kodieren ändert nichts. Vielleicht nehm ich die Codierung mal rauß!

    Werds mal testen
    GALDO
     

Diese Seite empfehlen