HTML Umlaute in UTF-8 Umlaute umwandeln

Slin61

Mitglied
Ich wandle ein UTF-8-Dokument in HTML-Code um. Dies soll am Ende wieder in UTF-8 umgewandelt werden und dann auch mit diesen ausgegeben werden. Nach der Dokumentation soll dies mit htmlentites und html_entity_decode, aber die Ausgabe ist leider falsch und ich weiß langsam auch nicht mehr weiter.
Dies ist der Code:
PHP:
echo $string;     //1.
$string = htmlentities($string, ENT_COMPAT | ENT_HTML5, "UTF-8", false);
echo $string;    //2.
$string = html_entity_decode($string, ENT_COMPAT|ENT_HTML5, "UTF-8"); 
echo $string;    //3.

Der erste String gibt das richtige aus, der zweite auch, aber der dritte gibt ein falsches Ergebnis aus.
 
Du willst das dein
Code:
$string = "Fünf";
dann so hier aussieht
Code:
f%26uuml%3Bnf
?

Das könntest du über
Code:
rawurlencode(utf8_encode("Fünf"));
erreichen.
PHP:
<?php

$string =" hallo ihr f&uuml;nf ";

echo $string."<br>";     //1.
$string = htmlentities($string, ENT_COMPAT | ENT_HTML5, "UTF-8", false);
echo $string."<br>";    //2.
$string2 = rawurlencode(utf8_encode($string));
echo $string2;    //3.


?>
 
Ich habe das über das ISO8859-1 Format gelöst. Zuerst konvertiere ich den String in das Format und kann ihn dadurch fehlerfrei ausgeben. Zum Schluss konvertiere ich den Teil dann wieder in das UTF-8 Format und codiere das über htmlentities:

PHP:
echo $string;
$string = utf8_decode($string);
htmlentities($string, ENT_COMPAT | ENT_HTML5, "ISO8859-1", false);
echo $string;
$string = utf8_encode($string);
$string = htmlentities($string, ENT_COMPAT|ENT_HTML5, "ISO8859-1");
echo $string;
//Komplett richtige Ausgaben.
@Tombe : Ich lese Java-Code in UTF-8 ein, möchte die Werte verändern und dann wieder in UTF-8 ausgeben, was jetzt auch funktioniert.
 
Zurück