Hallo Leute!
Folgender Code:
functions.php :
test.php :
trans.php :
Das Problem:
Beide Scripts (test.php und trans.php)
sollten im Prinzip das gleiche machen:
Vom Eingabefeld chinesische Schriftzeichen einlesen (copy & paste von china.com)
diese in eine Textdatei schreiben sowie das Eingegebene nochmals rausprinten (echo).
Was mich verrückt macht, ist, dass beim script test.php alles so funktioniert wie es soll,
dass heisst die chinesichen schriftzeichen sind in der Textdatei so drinnen wie sie sollten.
also etwa so: ÃÖйúÈýÏ
Jedoch beim anderen Script (trans.php) werden die chinesichen schriftzeichen
zwar auch gespeichert, jedoch nur als escapte unicode zeichen a la
& # 19987 ; & # 35775 ; ... etc
Ich habe keine Anhnung warum sich die beiden Scripts bezüglich
UTF-8 Zeichensatz anders verhalten, und hoffe dass wer von euch ne
idee hat warum!
Vielen Dank im Vorraus!
Grüße
Florian
Folgender Code:
functions.php :
Code:
<? function write_file($filename, $data) { if (!file_exists($filename)) { touch($filename); } $fp=fopen($filename,w); fwrite ($fp, $data); fclose($fp); } function read_file($filename) { if (file_exists($filename)) { $datei=fopen($filename,"r"); $gr=filesize($filename); return trim(fread($datei,$gr)); } else return "null"; } ?>
test.php :
Code:
<?PHP mb_internal_encoding("UTF-8"); include("functions.php"); if($action == "read") { $t_data= read_file("utftest.txt"); } else if ($action == "write" && $data != null) { $inhalt = $_POST["data"]; write_file("utftest.txt", $inhalt); echo $inhalt; } ?> <FORM ACTION="test.php" METHOD="POST"> <TEXTAREA name="data"> <? echo $t_data ?> </TEXTAREA> <input type="radio" name="action" value="read"> Lesen <input type="radio" name="action" value="write"> Schreiben <INPUT TYPE="SUBMIT"> <INPUT TYPE="RESET"> </FORM>
Code:
<?PHP mb_internal_encoding("UTF-8"); include("functions.php"); if($do== "save") { $inhalt = $_POST["hotelname"]; write_file("uteef.txt", $inhalt); echo $inhalt; } else { include("../templates/trt.php"); //nur für anzeigen des formulars } ?>
Beide Scripts (test.php und trans.php)
sollten im Prinzip das gleiche machen:
Vom Eingabefeld chinesische Schriftzeichen einlesen (copy & paste von china.com)
diese in eine Textdatei schreiben sowie das Eingegebene nochmals rausprinten (echo).
Was mich verrückt macht, ist, dass beim script test.php alles so funktioniert wie es soll,
dass heisst die chinesichen schriftzeichen sind in der Textdatei so drinnen wie sie sollten.
also etwa so: ÃÖйúÈýÏ
Jedoch beim anderen Script (trans.php) werden die chinesichen schriftzeichen
zwar auch gespeichert, jedoch nur als escapte unicode zeichen a la
& # 19987 ; & # 35775 ; ... etc
Ich habe keine Anhnung warum sich die beiden Scripts bezüglich
UTF-8 Zeichensatz anders verhalten, und hoffe dass wer von euch ne
idee hat warum!
Vielen Dank im Vorraus!
Grüße
Florian
Kommentar