Zitat:
|
[..] woran liegt die Meldung 'No Character Encoding Found!'? Und warum hab ich das z.B. nicht? Liegt das vielleicht an der Zeichenkodierung des Editors mit dem die Seite erstellt wurde?
|
Character Encoding bzw. Zeichenkodierung ist die Art, wie bestimmte Zeichen/Buchstaben in binärer Form dargestellt werden. Das hat wie gesagt nichts mit der Sprache zu tun, ich kann deutschsprachige Texte in mehreren Kodierungen verfassen, andersrum kann ich in einer Kodierung Texte in diversen Sprachen schreiben. Das lang- bzw. xml:lang-Attribut ist nur zur Kennzeichnung der Sprache gedacht, z. B. damit Suchmaschinen zuverlässig die Sprache erkennen können oder Screenreader wissen, wie sie Wörter aussprechen müssen.
Die Zeichenkodierung kann man auf verschiedenen Wegen angeben, da wären HTTP-Header, Byte Order Mark (beide universell für HTML und XHTML), meta-Tag (HTML, XHTML nur mit text/html-MIME-Type), encoding-Attribut in der XML-Deklaration (nur XHTML mit allen anderen MIME-Types) und implizit durch eine Bytefolge, aus der der Parser den String "<?xml" erkennen kann (nur XHTML mit anderen MIME-Types). Bei XHTML gibt es zudem den definierten Fallback auf UTF-8, wenn keine Kodierung aus den zuvor genannten Verfahren erkennbar war.
Du wirst unbewusst eine der (zumindest bei XHTML) vielen Möglichkeiten zur Angabe nutzen, ich tippe auf Byte Order Mark oder HTTP-Header, das sind die beiden, die man schnell übersehen kann. Die BOM müsste der Editor natürlich mit in die Datei speichern, daher kann das durchaus von dem Editor abhängen.
Die XML-Deklaration wird man in der Praxis normalerweise weglassen, da sonst der IE im Quirksmode rumeiert und noch mehr Probleme macht als sonst schon. Daher reduziert sich die Anzahl der möglichen Stellen zur Angabe der Kodierung schon mal. Die BOM kann in PHP-Dateien Probleme machen, wenn man HTTP-Headerzeilen mit header() senden möchte, da muss man also auch vorsichtig sein. Die Angabe im HTTP-Header erfordert den Zugriff auf die Serverkonfiguration, was nicht immer möglich ist. Auch haben dann einige Browser das Problem, dass beim Speichern solch einer Datei die Kodierungsangabe verloren geht, da sie ja nicht direkt in der Datei steht. Bleibt eigentlich nur noch eine Möglichkeit, die afaik keine Probleme aufwirft: Die Angabe per meta-Tag innerhalb der Datei und verwenden von UTF-8 als Kodierung, sodass für XHTML (mit "korrektem" MIME-Type) dass Fallback aktiv wird.
Wer die Möglichkeit hat, kann natürlich zusätzlich die Kodierung im HTTP-Header mit angeben, so kann ein Browser ohne diese wackelige Suche nach dem meta-Element gleich die Datei korrekt dekodieren.
@THMaster: Verdammt, lies dir doch bitte mal durch, was du da schreibst, da sind lauter Buchstabendreher drin. Für viele Browser gibt es auch eine (nachrüstbare) Rechtschreibprüfung, das wäre vielleicht mal eine Idee für dich.
Editoren mit Zeilenanzeige und Syntag-Highlighting für gängige Sprachen wie HTML gibt es hunderte, ich finde SciTE ganz nett, da sehr kompakt, wenn es etwas mehr sein darf wäre PSPad nicht verkehrt. Oder du nimmst einen Editor, der speziell für HTML geeignet ist, guck mal unter http://board.gulli.com/thread/338847-webeditoren---welchen-kann-ich-benutzen/
Das "falsche Zeichen" ist einfach nur falsch kodiert, stell in dem Editor die korrekte Kodierung (UTF-8) ein, die du auch in der Datei angegeben hast und der Fehler ist behoben.