Sven Rautenberg: utf-8 und PHP und HTTP-Header des Webserver

Beitrag lesen

Moin!

Da aber UTF-8 nur eine Untermenge von ASCII ist (also 7bit-Codierung), könnte da doch schon einmal ein Kriterium sein: eine Datei, die auch das achte Bit benutzt, kan  nicht UTF-8 sein. Oder habe ich da was falsch verstanden?

http://de.wikipedia.org/wiki/UTF-8

Sorry, das war falsch.
Es werden alle 8 Bit benutzt.
Das Bit 7 (80h  128d) wird eben zur Kennzeichnung der Umschaltung benutzt...

Auch das ist falsch.

UFT-8 ist keine Untermenge von ASCII. Umgekehrt! ASCII ist eine Untermenge von UTF-8.

Ich kämpfe mich da gerade durch, wie man utf-8 und PHP unter einen Hut bringt.

Das ist eigentlich recht simpel, wenn man nur simple Dinge will. Wenn man kompliziertere Dinge will, muß man UTF-8-fähige oder Unicode-fähige Software einsetzen (bei PHP wäre das Stichwort "mbstring" (Multibyte-String) anzubringen).

Welchen Header sendet der Webserver für die Zeichenkodierung?

Den üblichen. UTF-8 ist äquivalent zu ISO-8859-1 oder Windows-1252 in der Headerverwendung.

Reicht es, das charset im Header zu setzen?
Wer hat Vorrang? Der HTTP-Header oder das Meta-Äquivalent?

Das sollte dir doch eigentlich bekannt sein: HTTP-Header hat Vorrang vor Meta-Angabe.

reicht es, alle Ausgaben, die PHP produziert mit utf8_encode
http://de.php.net/manual/en/function.utf8-encode.php
zu behandeln?

Das kann man so pauschal nicht sagen, denn deine Strings könnten ja bereits UTF-8-codiert sein - ein Encoding wäre also falsch.

Was passiert mit den Zeichen, die schon mit HTML-Entitäten codiert sind?

Entities werden aus Zeichen gebildet, die sich auch mit ASCII darstellen ließen, mithin also in UTF-8 den Bereich >= 0x7F einnehmen.

Dürfen die drin stehenbleiben?

Man darf sie natürlich mit utf8_encode behandelt, das wird sie aber nicht verändern.

Ist die Codierung dann trotzdem noch eindeutig?

Welche Frage verbirgt sich hier?

Oder würde es reichen, _nur_ eine UTF-Codierung des Textes vorzunehmen?
also:

echo utf8_encode(htmlspecialchars($wilder_text));

Hängt davon ab, was in $wilder_text drinsteht - codierungsmäßig.

- Sven Rautenberg