Christian Kruse: utf-8 und Einbinden verschiedener Quellen

Beitrag lesen

你好 Sven,

Gibt es Methoden solche Textblöcke -automatisch per PHP- verläßlich zu
analysieren (und dann ggf. zu konvertieren), oder wäre ein Umweg über eine
Formular-Eingabe der Texte sinnvoller?

Nein, es gibt keine verlässliche Methode. Das einzige, was du prüfen kannst, ist, ob ein Text Zeichen enhält, die nicht in UTF-8 kodiert sind. Damit kannst du praktisch prüfen, ob der Text UTF-8-kodiert ist oder nicht.

Das ist sowas wie eine notwendige, aber keine hinreichende Bedingung. Wenn Bytes vorkommen, die laut UTF-8-Schema illegal sind, dann kann es kein UTF-8 sein. Das heißt für den umgekehrten Fall aber nicht, dass es dann in jedem Fall UTF-8 ist.

Das ist richtig, theoretisch kann es auch eine andere Kodierung sein. Aber da in UTF-8 Zeichen > 7 Bit (also alles über 2^7) nur in einer bestimmten Kodierung vorkommen dürfen, ist es sehr, sehr unwahrscheinlich, dass ein Text in einer anderen Kodierung als UTF-8 nur legale Byte-Sequenzen enthält. Praktisch kann man also feststellen, ob der Text in UTF-8 kodiert ist oder nicht.

再见,
 克里斯蒂安