Ankündigung

Einklappen
Keine Ankündigung bisher.

Chinesiche Schriftzeichen - UTF-8 ??!!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Chinesiche Schriftzeichen - UTF-8 ??!!

    Hallo Leute!

    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>
    trans.php :
    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
    	}
    
    ?>
    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


  • #2
    howdy folks!

    *hehe* ich bin auf den depperten fehler selber draufgekommen,
    ist aber so was von tricky... :
    bei der trans.php ist im html code des einabeformular folgende zeile im head gewesen:
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    wenn ich diese zeile raushau funktionierts auch bei trans.php und
    die zahlen werden NICHT als unicde escape sequenz gespeichert, sondern
    richtig im UTF-8 Format...

    Bin ich froh dass ich jetzt den Fehler gefunden habe *hehe*
    auf so was musst amol draufkumman..

    greets
    Flo

    Kommentar

    Lädt...
    X