Doctype, char-set, htmlentities
Tom
- php
Hello,
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.
Könnt Ihr mir da weiterhelfen?
Ich kann ja nicht einfach einen statischen Kopf einstanzen, und der Server codiert dann ganz anders.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<!-- ... andere Angaben im Dateikopf ... -->
</head>
Liebe Grüße aus http://www.braunschweig.de
Tom
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
Hello,
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.
Jau, sehr gute Anregung von Dir, nochmals drüber nachzudenken. Aber genau weiß ich doch nir, was ich bekomme. Ich baue eben an einem CMS und das könnte auch mal international eingesetzt werden. Gerade mit China gibts da viele Kontakte...
Wenn dort nun jemand in chinesischem Englisch einen text verfasst in einer <textarea>, dann kommt bei mir irgend ein Zeichnsalat an...
Un dwenn der nun meine Software auf seinem Server installiert, was muss die dann für einen Dokument-Kopf generieren?
Mit geht es eben um das Nachgucken an der richtigen Stelle.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
Mit geht es eben um das Nachgucken an der richtigen Stelle.
http://www.dodabo.de/charset/
ist gerade nicht erreichbar. Es ist eine Uebersetzung von
http://ppewww.ph.gla.ac.uk/~flavell/charset/checklist.html
Von Alan Flavell gibt es weitere interessante Seiten zu Charsets & Co.:
http://ppewww.ph.gla.ac.uk/~flavell/charset/
Sobald es um Formulare geht, will aber auch er sich
nicht mehr die Finger verbrennen...
http://ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html
Das alles ist natuerlich nicht PHP-bezogen, aber vielleicht
findest Du doch die eine oder andere Info, die Dir weiterhilft.
HTH, Gruesse,
Thomas