Probleme mit Umlauten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
ansatz
code
darstellung
datenbank
dokument
ergebnis
ersetzen
erwartete ausgabe
falscher ansatz
fragezeichen
kurz drei
problem
set
umlaut
umstellen
url
verbindung
wirkliche ausgabe
zeile
-
Hallo!
Ich habe ein Problem, nämlich dass Umlaute nach Abfrage nicht korrekt, sondern als � ausgegeben werden.
Hier mein Code:
<?php header("Content-Type: text/html; charset=UTF-8"); ?> <!DOCTYPE html> <html> <head> <title>Titel</title> <meta charset="UTF-8"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <head> <body> <?php $verbindung = mysqli_connect('mysql.lima-city.de', '****', '****', '****'); $umstellen = "SET character_set_results = 'UTF8', character_set_client = 'UTF8', character_set_connection = 'UTF8', character_set_database = 'UTF8', character_set_server = 'UTF8'"; $abfrage = "SELECT * FROM C"; $ergebnis = mysqli_query($verbindung, $abfrage); while($zeile = mysqli_fetch_object($ergebnis)) { $ersetzen = array("'", " "); $championkompatibel = str_replace($ersetzen, "", "$zeile->C"); echo "<li><a href=\"#" . $championkompatibel . "\">\n<img src=\"CIcons/" . $championkompatibel . ".png\" class=\"ui-li-thumb\">\n<h2>" . $zeile->Champion . "</h2>\n<p>" . $zeile->Satz . "</p>\n</a></li>\n"; } ?> </body>
Und die Datenbank: https://www.diigo.com/item/image/44qf8/o1un
Alles auf UTF-8... Was soll ich noch probieren??
MfG. Simon D.
Ah ja...
.htaccess:
AddDefaultCharset utf-8
Firefox sagt, dass die Seite UTF-8-kodiert ist.
EDIT: Hab es gelöst! Man muss um die Ausgabe ein
setzen!utf8_encode()
// EDIT by hackyourlife: Passwort zensiert
Beitrag zuletzt geändert: 11.7.2014 11:57:48 von hackyourlife -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi simon
Noch kurz drei Denkanstösse:
Ich würde das Passwort aus obigem Beispiel (jetzt sowieso da es gelöst ist) entfernen, da ansonsten mit diesen Angaben direkt auf deine Datenbank zugegriffen werden kann.
Des weiteren schickst du den Befehl in $umstellen gar nicht an die Datenbank, vielleicht ist das auch das Problem (ich kann es leider nicht nachvollziehen, habe zwar dein Skript lokal kopiert aber in den gelisteten Datensätzen ist keiner mit einem Umlaut oder komischen Zeichen vorhanden).
Und drittens:
Bei mir hat es bis jetzt jeweils sehr gut funktioniert mit folgendem Initialkommando:
SET NAMES utf8;
Gruess
Meron -
Du kannst auch, um viel Arbeit zu sparen, in deiner SQL-Verbindung ein mysql_set_charset('utf8',$verbindung) einsetzen, somit wird jedes mal deine Abfrage autiomatisch in UTF-8 umgewandelt.
MFG Micha$verbindung = mysqli_connect('mysql.lima-city.de', '****', '****', '****'); mysql_set_charset('utf8',$verbindung); ...
-
Alternativ könntest du auch die Darstellung via HTML wählen, oder nicht?!
ä -> ä
Ä -> Ä
ö -> ö
Ö -> Ö
ü -> ü
Ü -> Ü
ß -> ß
€ -> €
& -> &
< -> <
> -> >
“ -> "
© -> ©
• -> •
™ -> ™
® -> ®
§ -> §
| -> |
-
blog-2014 schrieb:
Alternativ könntest du auch die Darstellung via HTML wählen, oder nicht?!
ä -> ä
Ä -> Ä
ö -> ö
Ö -> Ö
ü -> ü
Ü -> Ü
ß -> ß
€ -> €
& -> &
< -> <
> -> >
“ -> "
© -> ©
• -> •
™ -> ™
® -> ®
§ -> §
| -> |
sorry blog-2014, aber völlig falscher Ansatz:
Wenn die Umlaute als Fragezeichen dargestellt werden, dann wird ein als ISO 8859-1 kodiertes Dokument als UTF-8 interpretiert.
erwartete Ausgabe: ä ö ü
wirkliche Ausgabe: � � �
-
dunkeltuten schrieb:
sorry blog-2014, aber völlig falscher Ansatz:
Wenn die Umlaute als Fragezeichen dargestellt werden, dann wird ein als ISO 8859-1 kodiertes Dokument als UTF-8 interpretiert.
erwartete Ausgabe: ä ö ü
wirkliche Ausgabe: ? ? ?
Danke dir für den Einwand! Habe gerade mal an einer Testdatenbank das ganze durchgespielt und mit meinem Ansatz nichts erreicht.
Die Fragezeichen waren noch da.
Abhilfe brachte der Ansatz von simon-d mit der utf8_encode() / utf8_decode() Funktion.
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage