Sonderzeichen in msql datenbank

hallo,

ich erhalte in meinem php script einen string, den ich dann in meine mysql datenbank schreibe. doch in der datenbank stehen dann irgendwelche komischen zeichen an den stellen, wo eigentlich umlaute oder das ß stehen.
wie kann ich das verhindern, ohne die sonderzeichen in html-code umzuwandeln (das mache ich nach der datenbank-abfrage)

lg
Martin

ich habe noch eine ergänzung:
manchmal wurde ein umlaut auch richtig erkannt und wurde richtig in der datenbank abgespeichert und ist dann in der sqlabfrage auf einmal falsch zurückgegeben worden…

bitte helft mir

Oft besprochenes Thema…

http://it-republik.de/php/artikel/UTF-8-fuer-alle-2838.html

danke für den link. jetzt steht alles richtig in der datenbank und die liefert auch alles richtig zurück, aber bisher habe ich das ganze immer noch durch htmlentities() geschickt, was jetzt aber wieder bewirkt, dass alles falsch angezeigt wird…

kann ich trotzdem eine mothode benutzen, die htmlcode rausfiltert?

vielleicht htmlspecialchars()?

danke für die hilfe!

htmlentities() oder htmlspecialchars() solltest du nur bei Ausgaben in einen HTML Kontext verwenden. D.h. wenn du Daten zum Browser schickst und nicht möchtest, dass diese vom Browser als HTML interpretiert werden.
Wenn du Daten in die Datenbank ablegst, empfiehlt es sich sie so “roh” wie möglich abzulegen, damit das nachträgliche Verarbeiten und übertragen in unterschiedliche Kontexte einfacher wird.