• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> 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