Candid Dauth: Zeichenkodierung einer Datei auslesen

Beitrag lesen

Heißa, Ashura,

Immerhin kannst du ja immer in paar Zeichensätze ausschließen, wenn zum Beispiel die Bitlänge des Strings nicht durch 8 teilbar ist, weißt du, dass es sich nicht um ein 8-bit-Charset handeln kann.
<dummfrag>
Die Ausgabe von strlen entspricht nicht der Bitlänge?
</dummfrag>

Hm, ich weiß nicht so genau, wie PHP mit 7-bit-Charsets umgeht, aber wenn du sowieso nur zwischen UTF-8 und ISO-8859-1 unterscheiden willst, ist das nicht so wichtig.

Oder du kannst überprüfen, ob es sich um UTF-8 handeln kann.
Das versuche ich ja die ganze Zeit. ;-)

Na dann sag das doch! ;-)

UTF-8 kann zum Beispiel keine Zeichen der Binärcodes 11111000–11111111 enthalten. Dann kannst du noch schauen, ob ein 110xxxxx wirklich von einem 10xxxxxx gefolgt wird, oder ob ein 10xxxxxx vorkommt, dessen Vorgänger eben einer ist, der in UTF-8 nicht erlaubt wäre.
Aber wie _genau_ kann ich dies überprüfen?

Naja, binär 11111000 entspricht hexadezimal F8. 11111111 wäre FF. Das bringt die schonmal weiter, zum Beispiel in preg_match kannst du dann das Zeichen [\xf8-\xff] überprüfen. Ich hoffe, das bringt dir was.

Anders gefragt: wie wandele ich einen String in seine Binärform um?

Ein String ist ja schon in Binärform gespeichert, wenn du aber zum Beispiel den Binärwert eines Zeichens herausfinden willst, bringt dich dies vielleicht weiter:
[link:http://php.net/decbin@title=decbin]([link:http://php.net/ord@title=ord]($zeichen))

Das brauche ich gar nicht. Ich möchte nur wissen, ob die Datei UTF-8-kodiert ist

Beachte, dass obige Möglichkeit immernoch nicht sicher ist, es gibt immernoch Möglichkeiten, bei denen du UTF-8 nicht einwandfrei identifizieren kannst.

Gautera!
Grüße aus Biberach Riss,
Candid Dauth

--
Ein Fußball-Fan? Noch auf der Suche eine Schlafmöglichkeit im Großraum Stuttgart für die WM 2006? Wie wäre es mit Herrenberg, einer gemütlichen Kleinstadt am Rande des Schönbuchs? – Von der Lage her ideal, auch für andere Vorhaben im Urlaub. Ferienwohnungen-Herrenberg.com.
http://cdauth.de/