ewig leidiges Thema charset (PHP -> Mysql)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
ausgeben
auslese
befehl
code
datenbank
datenverbindung
entlein
entsprechenden befehl
folgenden funktion
hergestellt code
nichtmal
nutz
profil
set
setzen
umstellen
umstellung
url
versuch
-
Hallo
ich will per PHP einen Datenbankeintrag ändern.
lasse ich mir den sql Befehl ausgeben, welcher durch PHP erstellt und gesendet wird erhalte ich
Update profile SET interest='hässliche Entlein füttern' WHERE id=3
In der Datenbank kommt allerdings nur das da an:
hässliche Entlein füttern
Die Seite wird in UTF-8 betrieben.
Sämtliche php und html Files sind im UTF8 Format gespeichert.
Die Datenbank hat in den Textfeldern die Kollation utf8_general_ci
Ich weiss einfach nicht mehr weiter wo ich suchen muss. Nichtmal mehr was ich bei google eingeben soll um einen Lösungsansatz zu finden.
Wer hat eine Idee an was das noch liegen könnt?
Merci für Eure Antworten.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mit folgenden Funktion kannst du die Codierung auslesen:
echo mb_detect_encoding($string);
Was ist die Ausgabe?
Versuch mal einmalig nach Verbinden mit der Datenabank die Übertragung auf uft8 zu setzen.
mysql_query("SET NAMES 'utf8'");
Beitrag zuletzt geändert: 6.11.2014 12:44:58 von c143 -
Set Names hab ich eingebaut.
mb_detect versuch ich gleich heut abend wenn ich daheim bin. Und melde mich dann nochmal mit der Ausgabe.
Vielleicht noch als zusätzliche Info wenn ich den Befehl, welcher von PHP sendet (den ich mir hab ausgeben lassen) kopiere und direkt in der Datenbank eingebe, so bekomme ich die Einträge wie gewünscht. -
Hallo,
ich kenne das Problem auch, habe es aber folgendermaßen beheben können...
Erst einmal solltest Du, falls noch nicht geschehen, deine Datenverbindung auf mysqli umstellen, da mysql veraltet ist und demnächst wohl entfernt wird.
Für die Umstellung auf den richtigen Zeichensatz hat mir folgende Codezeile geholfen, bzw. meine Datenverbindung habe ich so hergestellt...
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); }; // Setzen des UTF-8 Zeichensatz nach Herstellung der Datenverbindung if (!$mysqli->set_charset("utf8")) { die('Error loading character set utf8: ' . $mysqli->error); };
Beitrag zuletzt geändert: 6.11.2014 14:51:01 von staymyfriend -
Hallo Stay
Danke ;)
Ich nutze Mysqli Befehle. Hatte aber gestern bei meinem Versuch mit Mysql("SET NAMES 'utf8'") gearbeitet. Kann ja nicht funktionieren.
Ich nutze mysqli zwar nicht in Klassen wie du es vorschlägst habe aber jetzt entsprechenden Befehl mit eingebaut
mysqli_set_charset(<link>,'utf8');
Siehe da nun tut es was es soll.
Euch beiden nochmals vielen vielen Dank für die Unterstützung. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage