• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Probleme mit UTF-8

galdo

Auralia
Registriert
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
 

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
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?
 

galdo

Auralia
Registriert
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