molily: Doctype, char-set, htmlentities

Beitrag lesen

Hallo Tom,

in http://de2.php.net/manual/en/function.htmlentities.php habe ich nicht so richtig herausfinden können, wie man das am Server eingestellte Character Set im PHP-Script ermitteln kann. Der müsste doch dann in den Kopf-Angaben der Seite auch richtig generiert werden.

Was ist das »am Server eingestellte Character Set«? Meinst du die Kodierung des PHP-Skripts beziehungsweise des Strings, der der Funktion htmlentities als Parameter übergeben wird? Die hängt z.B. von deinem Editor ab. Wenn du im dritten Parameter nichts Gegenteiliges angibst, geht htmlentities von ISO-8859-1-Input aus.

Nachdem du htmlentities bspw. auf einen ISO-8859-1-kodierten Text angewendet hast, ist das Resultat meines Wissens ASCII und du könntest das Dokument bestehend aus diesem Text folglich mit der Kodierungsangabe US-ASCII senden, weil ja kein Zeichen über 128 mehr vorkommt (angenommen, der Ursprungstext enthielt keine Zeichen zwischen 128 und 159, für die gibt es keine Entities). Bei ISO-8859-15 und Windows-1252 müsstest du schauen, ob letztlich ASCII herauskommt.

Wozu verwendest du htmlentities denn? Wenn du sowieso größtenteils Zeichen z.B. aus ISO-8859-1 verwendest, kannst du auch direkt diese Kodierung nehmen und musst die darin enthaltenen Zeichen nicht maskieren. Erst für Zeichen außerhalb des Zeichensatzes wären dann Entities bzw. numerische Zeichenreferenzen angebracht.

Mathias