Hi,
ich habe in meiner Datenbank Zeichen, die nicht zum ASCII-Code gehören, und zwar Anführungsstriche unten und oben (sind aber nicht die ", sondern â und â)
--> http://www.htmlhelp.com/reference/html40/entities/special.html
jedenfalls möchte ich die Zeichen durch o.g. Entities ersetzen, da sonst der W3C-Validator meckert und ich meine Seiten natrürlich valide gestalten will. Ich benutze dazu PHP/MySQL.
Da die PHP-Funktion htmlentities() nur wenige (die üblichen) Entities kennt und ersetzt, dachte ich an ereg_replace() bzw str_replace(), um die Zeichen, durch â bzw â zu ersetzen.
Ich wollte das Zeichen in die PHP-Datei reinkopieren, da kam aber nur ein weißes leeres Quadrat. Nicht weiter schlimm, dachte ich mir,... hauptsache er speichert es richtig. Ich habs dann auch als Unicode-Datei gespeichert und hochgeladen (allerdings kann ich nur im ASCII-Mode hochladen).
Beim Validieren kam dann folgenden Fehlermeldung:
Sorry, I am unable to validate this document because on line 100 it contained one or more bytes that I cannot interpret as utf-16 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
Ich habe auch schon versucht, das ganze Entity Problem zu umgehen, indem ich das Dokument einfach als UTF-16, anstatt als ISO-8859-1 auszeichne. Dann kommt aber dieselbe Fehlermeldung (nur line 1), auch auf Seiten, die NUR ASCII-Code enthalten, und keine Sonderzeichen.
Wieso bringt der Validator das?? Ich dachte UTF-16 ist weltweit und umfasst alle Zeichen, demnach nach auch alle ASCII-Zeichen.
ISO-8859-1 ist doch nur eine Teilmenge von UTF-16, oder!?
Wenn das so ist, dann kann man seine Seiten eigentlich auch immer mit UTF-16 auszeichnen.
Hat jemand ne Idee, wie ich das gelöst bekomme??
Christian
PS: Den meisten Browser machen die unüblichen Anführungsstriche nichts aus, nur dem Validator.