Hallo und Danke,
Es sei denn, du lädst per Ajax kein HTML, sondern JavaScript-Code, also beispielsweise JSON. Dann gilt dasselbe, die Kodierung gibst du im HTTP-Header »Content-Type« an.
Es wird ja json als ajax response.
Alle verwendeten php Dateien werden schon via header('content-type: text/html; charset=ISO-8859-1'); richtig vorbereitet. Im html head ist ebenso das gleiche charset eingestellt.
<?php
header('Content-Type: application/javascript; charset=iso-8859-1');
?>
{
'dies' : 'ist eine beispielhafte JSON-Response',
'sie' : 'kann natürlich auch [link:http://php.net/manual/de/function.json-encode.php@title=mit PHP generiert werden]'
}
> ---
genau das tue ich:
\---
~~~javascript
while($row = mysql_fetch_assoc($l)) {
$r[$i] = "$row[kurzname] - $row[name]";
$i++;
}
if($i > 0)
{
echo json_encode($r);
}
---
HTTPLiveHeader sagt beim händischen aufrufen der AJAXSeite auch das der header das richtige charset verwendet.
Kann es sein das json_encode() mit Umlauten nicht klar kommt?
Denn ein echo des DB inhalts zeigt Umlaute richtig an, das echo json_encode() zeigts schon ohne.
Viele Grüße,
Rob