PHP zeigt Umlaute aus Datenbank falsch an
Hallo,
wie bereits der Titel vermuten läst, zeigt mir meine PHP Umlaute aus meiner MySQL Datenbank falsch an.
Wenn ich die Daten direkt ausgebe, werden Sie richtig angezeigt, wenn ich das ganze allerdings über Ajax nachlade kommt es zu einem Fehler.
Diese Datei wird von dem Ajax Script aufgerufen.
Hier noch das Ajax, welches ich nicht selber geschrieben hab.
Ich versteh zwar was in dem Ajax Script steht, allerdings hab ich sonst nicht viel Ahnung davon. Ich brauche es nur für IE8+ falls es am Ajax liegt. Die Tabelle sowie die einzelnen Felder sind auf utf8_general_ci eingestellt.
Wie gesagt, es wird alles richtig angezeigt, sollange ich es nicht über das Ajax aufrufe.
Noch nen paar Infos.
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
phpmyadmin Versionsinformationen: 3.5.2.2
Ich hoffe ihr könnt mir helfen
Grüße
Nico
wie bereits der Titel vermuten läst, zeigt mir meine PHP Umlaute aus meiner MySQL Datenbank falsch an.
Wenn ich die Daten direkt ausgebe, werden Sie richtig angezeigt, wenn ich das ganze allerdings über Ajax nachlade kommt es zu einem Fehler.
Diese Datei wird von dem Ajax Script aufgerufen.
$db = mysqli_connect($hostname, $username, $password, $dbname);
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
mysql_query("SET NAMES 'utf8'");
if ($_POST["suchbegriff"]){
$result = mysqli_query($db, "SELECT ID, vorname, nachname
FROM azubi WHERE vorname LIKE ('%".mysql_real_escape_string($_POST["suchbegriff"])."%')
OR nachname LIKE ('%".mysql_real_escape_string(($_POST["suchbegriff"]))."%')");
while($row = mysqli_fetch_array($result)){
echo $row['vorname']." ".$row['nachname']." ";
echo '<a href="edit_azubi/edit_azubi.php?id='.$row['ID'].'"
onclick="FensterOeffnen(this.href); return false">Bearbeiten</a>';
echo "<br/>";
}
}
Hier noch das Ajax, welches ich nicht selber geschrieben hab.
function searchAzubi(suchbegriff){
var xmlHttp = null;
// Unterstützung für Internet Explorer 7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
// Wenn das Objekt erfolgreich erzeugt werden konnte
if (xmlHttp) {
var url = "edit_azubi/suchfunktion.php"; //Die Suchfunktion deklarieren
var params = "suchbegriff="+suchbegriff; //Den Suchbegriff abspeichern
xmlHttp.open("POST", url, true); //Daten über POST an die Suchfunktion übergeben
//Headerinformationen für den POST Request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
// Zurückgelieferte Ergebnise werden in das DIV "ergebnis" geschrieben
document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}
Ich versteh zwar was in dem Ajax Script steht, allerdings hab ich sonst nicht viel Ahnung davon. Ich brauche es nur für IE8+ falls es am Ajax liegt. Die Tabelle sowie die einzelnen Felder sind auf utf8_general_ci eingestellt.
Wie gesagt, es wird alles richtig angezeigt, sollange ich es nicht über das Ajax aufrufe.
Noch nen paar Infos.
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
phpmyadmin Versionsinformationen: 3.5.2.2
Ich hoffe ihr könnt mir helfen
Grüße
Nico
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 208267
Url: https://administrator.de/contentid/208267
Ausgedruckt am: 16.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Mhm.. geht leider auch nicht.
bezieht sich das auf:> Wenn ich die Daten direkt ausgebe, werden Sie richtig angezeigt
Probier das einmal mit einem UTF8 kodierten php-skript. passt's dann auch noch?
Probier das einmal mit einem UTF8 kodierten php-skript. passt's dann auch noch?
dann sind die Daten in die DB wohl falsch eingetragen wurden. Für eine richtige Darstellung, müssen die eingabe und Ausgabe Skripte UTF8 ohne BOM kodiert sein. sowie die DB und die Verbindung.
du kannst aber auch die Daten vor dem Eintragen mit utf8encode konvertieren.