Hello,
Wäre es nun gut, vorher zu prüfen ob ein String in UTF8 vorliegt (geht das überhaupt?) oder ob es codierte Zeichen enthält? Wenn ja, dann "utf8_decode" einsetzen.
Das haben Cybaer und ich hier schon mehrfach diskutiert.
http://forum.de.selfhtml.org/archiv/2006/3/t124786/#m804376
Es ist im Prinzip nicht möglich zu erkennen, ob ein ISO-String oder ein UTF-8-String vorliegt, wenn man dem ISO-String keine Randbedingungen auferlegt. Wenn man den ISO-String auf "druckbare Zeichen" einschränkt, dann kann man zumindest ahnen, in welchen Fällen es sich nicht mehr um einen gültigen (nach diesen Regeln) ISO-String handelt. Dann kann man als nächstes prüfen, ob der String denn wenigstens dieselben Regeln als UTF-8-String erfüllen würde. Vorher könnte man mittels der Funktionen von Cybaer noch testen, ob denn überhaupt ein gültiger UTF-8 String vorliegt.
Je mehr randbedingungen bekannt sind (Sprache, nur druckbare Zeichen, ...), desto eher kannst Du eine sinnvolle Aussage treffen.
Oder wäre es egal, wenn "utf8_decode" eingesetzt wird auch wenn alles auf latin1 bzw. ISO-8859-1 ist?
ausprobieren! Du wirst sehen, dass es nur für Code(s|points) unterhalb 128 egal ist, weil dort die Definitonstabellen deckungsgleich sind.
http://selfhtml.bitworks.de/utf8.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg