utf8_decode()

silent321

Grünschnabel
Hi,

ich habe ein problem

Ich hab ne suche programmiert.
wenn ich in die datenbank hühner eingetragen habe und es ausgelesen hab kahm "Hühner" bei raus.

zuerst habe ich es mit
PHP:
htmlentities()
versucht aber das hat auch nicht funktioniert.

dann habe ich gegooglet und
PHP:
utf8_decode()
gefunden mit dem es richtig in die datenbank eingetragen wird, wenn ich jetzt aber nach hühner suche findet er nichts !! er findet nur den alten eintrag mit Hühner.

habt ihr eine lösung für mein problem?
 
Verwende eine einheitliche Zeichenkodierung beziehungsweise einen einheitlichen Zeichensatz. Ich empfehle dir UTF-8, die du in allen Systemen (PHP-Dateien, MySQL und Ausgabe) verwenden solltest, um unnötige Konvertierungen zu vermeiden.
In dem Artikel „UTF-8 im Zusammenspiel mit MySQL und PHP auf“ barmasse.org steht eine gute Zusammenfassung der Schritte und Einstellungen, die dafür notwendig sind.
 
wenn ich hier mal mitfragen darf...

ich fand den Linkvorschlag von Gumbo super, aber wie kann ich die Grundeinstellung überprüfen, ich habe nur ein webhosting Paket zur verfügung, da komme ich an soetwas eh nicht ran.
 
Die Standardzeichenkodierung, genauer gesagt der Standardzeichensatz, ist vermutlich ISO 8859-1, auch „Latin 1“ genannt.
 
Hallo,
Normal müsste es reichen, wenn du den Charset auf der entsprechenden Seite umstellst:
HTML:
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    ....
  </body>
</html>

MFG djjada
 
Eben nicht. Die zu verwendende Zeichenkodierung muss bekannt sein, noch bevor das erste Bit des Dokuments verarbeitet wird. Und das ist nur möglich, wenn diese Information nicht im Dokument selbst sondern separat verfügbar ist. Und das ist nur (und auch korrekt) über den HTTP-Header möglich, der vor dem eigentlichen Dokument übertragen wird. Und genau dort sollte diese Information untergebracht werden:
PHP:
header('Content-Type: text/html; charset=UTF-8');
 
Kann ich so denn Schluss ziehen, dass wenn ich den header('Content-Type: text/html; charset=UTF-8'); sende, mir die Serverkonfiguration egal sein kann?
 
Nein. Das Senden dieses Header-Felds ist nur für die Clients und sagt ihnen, wie sie den Inhalt zu verarbeiten haben. Dass der Inhalt aber tatsächlich UTF-8-kodiert ist, dafür musst du selbst sorgen.
 
Zurück