Hallo!
Leider geht es mal wieder um das Problem: AJAX und Umlaute.
Sorry, aber irgendwie bin ich trotz durchlesen verschiedenster Seiten noch nicht schlauer.
Meine Datenbank steht auf "utf8_general_ci". In PHP setze ich via header("content-type: text/html; charset=utf-8"); alles auf UTF 8 und trotzdem habe ich ein Problem das Umlaute, die in ein Input Text geschrieben werden sollen falsch bzw garnicht angezeigt werden.
Folgende PHP Datei wird via AJAX aufgerufen:
Hier klappt alles auch noch so wie es soll. Also wenn ich die Datei direkt aufrufe und einen Code übergebe bekomme ich die Umlaute richtig angezeigt.
Der Aufruf per AJAX sieht so aus:
Ich bekomme nichts angezeigt. Erst wenn ich in der PHP Datei aus der Zeile echo $Info["name"]; ein echo htmlentities($Cache["name"]); mache kommt was zurück!
Und dann bekomme ich im Edit Feld die Umlaute als HTML Code angezeigt
Was mache ich falsch, bzw. warum werden nicht einfach die Umlaute (ohne Umwandlung durch htmlentities) angezeigt?
Grüße!
Leider geht es mal wieder um das Problem: AJAX und Umlaute.
Sorry, aber irgendwie bin ich trotz durchlesen verschiedenster Seiten noch nicht schlauer.
Meine Datenbank steht auf "utf8_general_ci". In PHP setze ich via header("content-type: text/html; charset=utf-8"); alles auf UTF 8 und trotzdem habe ich ein Problem das Umlaute, die in ein Input Text geschrieben werden sollen falsch bzw garnicht angezeigt werden.
Folgende PHP Datei wird via AJAX aufgerufen:
PHP:
<?PHP
// Einbinden der Config Datei
require("../include/config.inc.php");
// Überprüfen ob User angemeldet ist und diese Seite Aufrufen darf
check_login();
// Übernimmt den Code
if (isset($_GET["Code"]) AND $_GET["Code"] != "")
$code = $_GET["Code"];
else if (isset($_POST["Code"]) AND $_POST["Code"] != "")
$code = $_POST["Code"];
else
die();
if ($Info= mysql_fetch_assoc(mysql_query("SELECT name FROM DB WHERE code = '".mysql_real_escape_string($code)."'")))
echo $Info["name"];
?>
Hier klappt alles auch noch so wie es soll. Also wenn ich die Datei direkt aufrufe und einen Code übergebe bekomme ich die Umlaute richtig angezeigt.
Der Aufruf per AJAX sieht so aus:
Code:
function FindDuplicate(Code)
{
request.open("POST", "functions/FindDuplicate.php", false);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
request.send("Code=" + encodeURIComponent(Code));
// Wenn das Script fertig ist
if (request.responseText != "")
{
document.Insert.name.value = request.responseText;
document.getElementById("NameInfo").innerHTML = request.responseText;
}
}
Ich bekomme nichts angezeigt. Erst wenn ich in der PHP Datei aus der Zeile echo $Info["name"]; ein echo htmlentities($Cache["name"]); mache kommt was zurück!
Und dann bekomme ich im Edit Feld die Umlaute als HTML Code angezeigt
Was mache ich falsch, bzw. warum werden nicht einfach die Umlaute (ohne Umwandlung durch htmlentities) angezeigt?
Grüße!