Felix Riesterer: Javascript Ajax Upload Sonderzeichen

Beitrag lesen

Lieber DIrk,

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

OK, Du sendest ein UTF8-kodiertes Dokument an den Browser. Sind die Daten auch UTF8?

echo " <HTML> <HEAD> <SCRIPT>

Was soll das denn sein? HTML in der Ur-Version von 1992, oder HTML 2.0 von 1995, oder HTML3.0? Ohne Doctype können Browser damit machen, was sie für richtig halten. Da Du bei <SCRIPT> keine type-Angabe machst, setzt Du offensichtlich JavaScript voraus, was meines Wissens erst ab HTML5 vorausgesetzt werden darf. Daher empfehle ich Dir dringend einen korrekten Doctype zu verwenden!

Desweiteren schreibt man die Elementnamen spätestens seit HTML5 klein. Du solltest ohnehin nur noch HTML5 verwenden (s.o.), dann sollte jeder derzeit aktuelle Browser auch keinen Bockmist mit Deinem Dokument anstellen.

uploadFile.php: [...] header("Content-Type: text/html; charset=utf-8");

Auch hier wieder sendest Du die korrekte Zeichenenkodierung. Soweit gut.

  fwrite($f,"tst=" . utf8_decode( $TST ) . "\n" );

WTF?? Warum änderst Du hier etwas an der UTF8-Kodierung? Was soll das denn bitteschön? Du solltest vollumfänglich alles in UTF8 handhaben! Sonst knallt es Dir irgendwann um die Ohren.

Solltest Du unter Windows testen, könnte es einen Sinn haben, den Dateinamen (aber nur diesen!!) von UTF8 nach ISO-8859-1 zu konvertieren, da Windows meines Wissens in seinem Dateisystem UTF8 nicht unterstützt. Aber auf einem Produktiv-System wird sicherlich irgend ein unixoides System (Linux, BSD oder gar Solaris) eingesetzt werden, welches mit UTF8 einwandfrei klar kommt.

Wenn Du die gespeicherten Daten (den Dateiinhalt) nicht korrekt anschauen kannst, da Deine Windows-Version einen nicht-UTF8-fähigen Texteditor (Notepad) hat, dann nimm eben einen, der das kann, und stelle ihn als Standardprogramm für alle Arten von Textdateien ein.

Liebe Grüße,

Felix Riesterer.