AW: Ő in Textdatei schreiben
AW: Ő in Textdatei schreiben
Ich bin mir nicht sicher, aber ich mein das solltest du mit dem charset lösen. Ich hab die charsets jetzt nicht im Kopf, doch wenn ich mich nicht irre sind bei UTF-8 auch keine Umlaute wie ä,Ä,ö,Ö und so weiter dabei.
Der charset für das deutsche Alphabet ist ISO-8859-1 oder ISO-8859-15, da gibt es doch bestimmt auch einen bestimmten charset für das ungarische ;)
AW: Ő in Textdatei schreiben
Danke für eure Antworten.
Ihr zeigt schon in die richtige Richtung, das was ihr schreibt habe ich mir auch schon gedacht, jedoch ist es so, dass das Problem nicht an der HTML Ausgabe an sich liegt.
Wenn ich das Dokument per Echo ausgebe, das heißt die Daten die per $_POST übergeben werde per echo ausgebe, werden diese Korrekt angezeigt.
Das Problem liegt bei der schreiben der Datei. Um es mal konkret zu zeigen, ihr könnt es vielleicht sogar ausprobieren:
Benutzer füllt ein Formular aus z.b.
Frage1 = Öltöző (Öltöző bedeutet Umkleide, grad nichts besseres eingefallen=
So, das wird nun per POST übergeben. Im zweiten PHP Script habe ich nun zugriff per:
$_POST["Frage1"]
setze ich den Header nun zuerst per:
PHP-Code:
header('Content-type: text/html; charset=utf-8');
und schreibe dann:
PHP-Code:
echo $_POST+++91;"Frage1"+++93;
ist die Ausgabe:
Öltöző
Bis hierhin passt auch alles. Jetz möchte ich aber das Wort in eine Datei schreiben:
$fh = fopen($myfile,'w');
fwrite($fh,"Öltöző");
fclose($fh);
Ist die Ausgabe:
ÖltözĹ
Probiert es mal selbst aus, dieser Script sollte funktionieren:
PHP-Code:
header('Content-type: text/html; charset=utf-8');
$output = fő;
echo $output;
$myFile = 'test.html';
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $output);
fclose($fh);
öffnet nun test.html und ihr werdet sehen, dass es nicht funktioniert hat, beim echo jedoch schon.
Eigentlich wäre der korrekte charset für ungarisch ISO-8859-2 aber das funktioniert auch nicht.
AW: Ő in Textdatei schreiben
Probier mal Folgendes:
Code:
fwrite($fh, pack('CCC', 0xef, 0xbb, 0xbf) . $output);
oder
fwrite($fh, "\xEF\xBB\xBF" . $output);
http://en.wikipedia.org/wiki/Byte_order_mark