ERLEDIGT
NEIN
NEIN
ANTWORTEN
23
23
ZUGRIFFE
11826
11826
EMPFEHLEN
-
Hallo,
ich habe folgendes Problem und zwar will ich über PHP einen Datensatz in eine MySQL-Datenbank einfügen. Dieser Datensatz kann auch Umlaute enthalten. Wenn ich mir den zusammengesetzten SQL-String anzeigen lasse, zeigt der mir den richtigen Text an. Also Umlaute sind noch Umlaute. Kopiere ich mir den String nun und füge diesen von Hand in die Datenbank ein funktioniert alles wunderbar. Wenn ich den String jedoch mittels PHP absetzen will, schreibt PHP mir irgendwelche komischen Zeichen in die Tabelle.
Weiß eventuell jemand woran das liegt? Über Hilfe wäre ich sehr dankbar.
Gruß
Daniel
-
Das hier hilft:
htmlspecialchars()
htmlentities()
-
12.02.08 13:35 #3
wenn das, was du in die DB einfügen willst nicht auf der seite ausgegeben werden soll, dann kannst du die umlaute auch direkt also XML code schreiben ä = ä ü = ü
versuchs mal
-
Es liegt an den unterschiedlichen verwendeten Zeichenkodierungen der einzelnen Systeme. Vermutlich stimmt die Eingabekodierung nicht mit der verwendeten Kodierung der Datenbank und/oder der Ausgabe nicht überein.
Welche Zeichenkodierung verwendest du denn?Markus Wulftange
-
12.02.08 13:38 #5
ich muss hinzufügen das du den XML code glaube ich auch verwenden kannst wenn du das doch ausgeben willst....
-
-
Da ich die Datensätze später auch ausgeben muss und diese später auch noch bearbeitet werden sollen, kann ich leider nicht direkt den HTML-Code, wie z.B. ü, in die Datenbank schreiben.
-
Du solltest deine Webanwendung in UTF-8 und deine DB auch in UTF-8 haben dann solltest du keine probs. mehr haben.
-
Wird diese Zeichenkodierung denn auch von der Datenbank benutzt und bei der Ausgabe korrekt angegeben?
Markus Wulftange
-
Danke für eure Hilfe.
Ich habe nun auch den Fehler gefunden. Es war alles richtig auf UTF-8 umgestelt, nur habe ich vor meine Ausgaben ein htmlentities($string) stehen. Das funktioniert bei UTF-8 allerdings nicht mehr so. Da muss es dann htmlentities($string,ENT_QUOTES,’UTF-8’) heißen.
-
Zudem brauchst bei UTF-8 du bis auf die HTML-Metazeichen keine anderen Zeichen durch Zeichenreferenzen zu ersetzen.
Markus Wulftange
-
Habe nun ein weiteres Problem und zwar soll aus einem in ein Formular eingegebenen String automatisch ein String ohne Sodnerzeichen erstellt werden, bzw. soll die Sonderzeichen ersetzt werden. Da die Eingaben des Formulars aber nun via UTF-8 geschehen, funktioniert meine Funktion nicht mehr, die z.B. aus einem ü ein ue macht. Der Grund dafür ist jetzt, dass die Sonderzeichen schon in dem String in UTF-8 sind.
Gibt es eine PHP-Funktion mit der man Zeichen in UTF-8 umwandeln kann?
-
Bei UTF-8 musst du auch die UTF-8-Kodierungen der jeweiligen Zeichen nehmen. Das heißt entweder kodierst du auch die PHP-Skripte mit UTF-8 oder du gibst die Bitsequenzen einzeln an.
PHP-Code:$trans = array(
"\xC3\xA4" => 'ae',
"\xC3\xB6" => 'oe',
"\xC3\xBC" => 'ue',
// …
);
Markus Wulftange
-
Und wie kodiert man ein PHP-Script mit UTF-8?
-
Das muss dein Editor können, der die Eingabe von der Tastatur direkt kodiert.
Markus Wulftange
Ähnliche Themen
-
Umlaute werden nach Import in die Datenbank falsch dargestellt
Von Prengepower im Forum PHPAntworten: 0Letzter Beitrag: 13.12.10, 21:57 -
Umlaute werden falsch in DB geschrieben
Von Homer im Forum PHPAntworten: 8Letzter Beitrag: 23.12.09, 12:13 -
Datum wird falsch in die Datenbank gespeichert
Von Rambo51 im Forum PHPAntworten: 5Letzter Beitrag: 13.04.06, 17:54 -
Umlaute werden bei Formular falsch übergeben
Von NiciB im Forum PHPAntworten: 4Letzter Beitrag: 11.10.05, 09:50 -
Icons werden falsch gespeichert
Von alixander im Forum Borland CBuilder und VCLAntworten: 1Letzter Beitrag: 20.03.05, 04:31





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren