Tamara
Mitglied
Registriert: 16.11.2006
Beiträge: 4
|
|
Hallo alle zusammen, vielleicht hatte hier jemand auch dieses Problem. Habe schon ein Paar Postings gefunden aber leider keine Antwort.
und zwar habe ich folgendes Problem: ich habe eine php seite: http://www.media-consulting24.de/cms/php/validometest.php, welches auch ein valides xhtml hat.
hier der header: ////////////////////////////////////////////////////////////////////////////////////// <?php header("Content-type: text/html; charset=iso-8859-1"); ?> <? echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />';..................................... /////////////////////////////////////////////////////////////////////////////////////// wenn ich später aus dieser php seite eine statische html seite erzeuge(http://www.media-consulting24.de/cms/validometest.html) ist dieser nicht mehr valide. Fehlermedung lautet: Es wurde keine Zeichenkodierung gefunden. Aus diesem Grund wurde UTF-8. Wenn ich die Zeichenkodierung manuell auswähle dann ist es aber valide.
Wie kann ich es erreichen dass die Zeichenkodierung automatisch erkannt wird?
Vielen dank für Antworten im voraus
|
|
| 16.11.2006 09:45:56 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
Hallo, 1. Den Server dermaßen konfigurieren das dieser bei statischen Dokumenten den Header sendet. 2. Eine XML-Deklaration einfügen. 3. Das Dokument in UTF-8 kodieren. Das meta-Tag mit der Charsetangabe ist im übrigen bei XHTML irrelevant, die ist nur für HTML-Dokumente ausschlaggebend.
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 16.11.2006 11:59:52 |
|
Tamara
Mitglied
Registriert: 16.11.2006
Beiträge: 4
|
|
Den Server kann ich schlecht selbst kofigurieren weil ich beim provider bin. (wie die meisten auch, leider) und utf will ich nicht. allso bleibt nur noch:
2. Eine XML-Deklaration einfügen.
und an welcher Stelle kann man es einfügen? und wie sieht es aus?
habe gerade bei http://validator.w3.org getestet da ist es ok
Beitrag geändert von Tamara (16.11.2006 13:16:00)
|
|
| 16.11.2006 13:08:42 |
|
dkdenz
Administrator
Ort: Lübeck
Registriert: 25.04.2005
Beiträge: 605
|
|
Hallo. Der XML-Prolog steht als Erstes im Dokument:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
.
.
. |
Viel Spaß noch...
_______________________________________ Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.0.14eol) Gecko/20080418 Ubuntu/dapper-security Firefox/1.5.0.12eol
|
|
| 17.11.2006 08:02:59 |
| http://dkmd.de | http://dkdenz.de |
Zitieren |
|
|
|
| Den Server kann ich schlecht selbst kofigurieren weil ich beim provider bin. |
Das muss die Konfigurationsmöglichkeit nicht ausschließen. Bei Apache kannst du z. B. mit AddCharset oder AddDefaultCharset die Kodierungsangabe auch über .htaccess definieren.
Wäre aber das beste, mit der XML-Deklaration bekommst du entweder im IE Probleme (Quirksmode), oder aber wenn die Dokumente mal nicht über HTTP aufgerufen werden und dann die Kodierungsangabe im HTTP-Header wegfällt. Speichere mal dein Testdokument mit XHTML-Endung (! - wichtig, sonst wird es als HTML interpretiert) auf deiner Festplatte und rufe es dann lokal auf ...
In der Praxis bedeutet die Wahl von XHTML daher praktisch zwingend auch die Wahl von UTF-8. Wenn du ISO-8859-1 nutzen möchtest, solltest du besser bei HTML bleiben, das dürfte ja kein Problem sein, oder nutzt du irgendwelche XHTML-spezifischen Eigenschaften?
| habe gerade bei http://validator.w3.org getestet da ist es ok |
Das ist eine Macke in dem Validator. Der berücksichtigt das meta-Element, was aber bei XHTML eben völlig irrelevant ist. Man fügt es nur deshalb ein, damit in dem Dokument auch bei Verarbeitung als HTML (was ja die Regel ist) die Kodierung korrekt erkannt wird.
|
|
| 18.11.2006 21:37:44 |
|
Tamara
Mitglied
Registriert: 16.11.2006
Beiträge: 4
|
|
manche Provider erlauben keine htaccess dateien (habe in vielen Foren gelesen, kann ja auch sein dass es nicht stimmt) meiner erlaubt es. Es handelt sich aber um ein CMS und deswegen soll es für jeden sein.
mit utf??? hmmm, da bekomme ich sowieso immer Fehlermeldungen dass wohl auf der Seite irgendwo ein nicht erlaubtes Zeichen stehen soll. weiß aber nicht genau wo, und auch nicht was er für ein Zeichen meint. Bin erst kürzlich auf xhtml umgestiegen. Habe daher noch nicht so viel Erfahrung.
Xhtml "muss" ich nehmen. weil ich FCK editor verwende und der generiert schon valides xhtml.
Wenn ich es mit meinem html editor (NVU- hat einen eingebauten validator) validiere ist das beim utf8 auch valide. Habe das ganze auf einem anderen Webspace getestet (Hoster: www.funpic.de) Da ist es wiederum alles valide. Allso langsam weiß ich auch nicht weiter. ???????????????????????
Dann verstehe ich nicht warum http://validator.w3.org das Dokumet als valide einstuft und http://www.validome.org als nicht valide.
Beitrag geändert von Tamara (21.11.2006 11:12:28)
|
|
| 21.11.2006 10:55:26 |
|
dkdenz
Administrator
Ort: Lübeck
Registriert: 25.04.2005
Beiträge: 605
|
|
Unter Umständen reicht es nicht aus, in Foren akute Probleme schnell und unkompliziert gelöst zu bekommen. Man muss sich da schon mal hinsetzen und diverse Quellen durchforsten (Internet, Bücher). Immerhin bietest Du u.A. Webdesign an... Übrigends: Höchstwahrscheinlich wird ein Deutscher Umlaut in der Fehlermeldung mokiert.
_______________________________________ Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.0.14eol) Gecko/20080418 Ubuntu/dapper-security Firefox/1.5.0.12eol
|
|
| 21.11.2006 18:25:33 |
| http://dkmd.de | http://dkdenz.de |
Zitieren |
|
|
|
Wenn der Code möglichst portabel sein soll, und du XHTML verwenden willst, bleibt ja als Möglichkeit nur noch UTF-8. Wenn das CMS auch in anderen Sprachen nutzbar sein soll, kannst du sowieso schlecht auf ISO-8859-1 setzen. Die Verwendung von UTF-8 bedeutet natürlich, dass sämtliche Inhalte auch UTF-8-kodiert gespeichert werden müssen. Wenn es bei dir mit UTF-8 zu Problemen kommt, bindest du eventuell irgendeine Datei ein, die anders kodiert ist. Das ist aber kein XHTML-spezifisches Problem, das betrifft auch HTML und zieht sich durch sämtliche Textformate.
| Dann verstehe ich nicht warum http://validator.w3.org das Dokumet als valide einstuft und http://www.validome.org als nicht valide. |
Das schrieb ich ja schon oben, der Validator des W3C erkennt einfach viele Fehler nicht, das trifft vermutlich auch auf den Validator in NVU aus, ich kenne diesen aber nicht. Validome spuckt zwar selten auch mal Falschemeldungen aus, die werden dann aber meist sehr schnell behoben. Falls bei dir so ein Fall vorliegen sollten, wäre es natürlich sinnvoll, wenn man sich das mal ansehen könnte.
|
|
| 21.11.2006 20:31:57 |
|
IBeRKa
Mitglied
Ort: Augsburg
Registriert: 24.11.2006
Beiträge: 3
|
|
Ahoy zusammen,
kann es sein, dass hier dieser Artikel hilfreich ist?
http://blog.antikoerperchen.de/beitrag/42/utf-8-und-die-entity.html
Gruß, Rüdiger
_______________________________________ My software has no bugs. It just develops random features. ;)
|
|
| 24.11.2006 07:59:12 |
|
Tamara
Mitglied
Registriert: 16.11.2006
Beiträge: 4
|
|
Danke schön, habe ich mir durchgelesen. Hatte ein Umlaut in den Metatags. Das war auch das unerlaubte Zeichen, wo er gemeckert hat. Allso so wie ich es aus dem Artikel verstanden habe: nutzt man utf 8, um irgendwelche utopische Zeichen wie z.B: arabische schrift darzustellen. Da mein CMS aber nur für den europäischen Raum gedacht ist, muss ich nicht zwingend auf utf umstellen. Reicht auch wenn ich html HTML Entitys nehme. Habe ich recht, oder habe ich recht?
|
|
| 24.11.2006 09:45:32 |
|
|
|
| Hatte ein Umlaut in den Metatags. Das war auch das unerlaubte Zeichen, wo er gemeckert hat. |
Also wie vermutet falsch kodiert. Umlaute sind ja in UTF-8 keinesfalls verboten, sie müssen eben nur UTF-8-kodiert sein.
| Allso so wie ich es aus dem Artikel verstanden habe: nutzt man utf 8, um irgendwelche utopische Zeichen wie z.B: arabische schrift darzustellen. |
Nicht nur. Mit UTF-8 kannst du einfach alle in Unicode spezifizierten Zeichen nutzen und somit praktisch in beliebigen Sprachen schreiben, ohne Transskriptionen (oder sofern möglich Maskierungen) zu verwenden. Für westliche Inhalte mag UTF-8 auf den ersten Blick nicht so die großen Vorteile bieten, aber wenn man typografisch korrekt schreiben will, kommt man z. B. im Deutschen nicht mit ISO-8859-1 aus.
Du kannst dich natürlich mit Entities rumschlagen und dann ausschließlich die ASCII-Zeichen unmaskiert in deine Dokumente schreiben. In diesem Fall ist es egal, wenn das Dokument als UTF-8 behandelt wird, da ASCII-Text immer auch gültiger UTF-8-Text ist. Das bedeutet dann aber, dass in dein CMS keine Umlaute und ähnliches eingegeben werden können, da die ASCII-Kodierung die Zeichen nicht kennt und die Browser zudem beim Senden von Formulardaten UTF-8 (oder bei nicht definierter Kodierung und text/html-MIME-Typ gar eine andere Kodierung) verwenden würden, und du so die Daten nicht vernünftig verarbeiten könntest.
Entities mögen für Seiten ohne Benutzereingabemöglichkeit ein praktikabler Workaround sein, wenn man sich absolut nicht mit Kodierungen beschäftigen möchte. Gerade für ein CMS halte ich den Ansatz aber für höchst problematisch.
|
|
| 30.11.2006 19:33:57 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|