Prüfung welche Codierung ein String ist?

Hier noch mal ein kleiner Nachtrag.

Es gibt nach wie vor das Problem, dass Strings der Datenbank teilweise UTF-8 Format aber auch ISO Format sind. Daher geht eine allgemeine Lösung leider nicht.


Folgende Lösung:
Ich habe das Dokument wieder auf ISO Format gestellt und prüfe jetzt zuerst welche Art von Umlauten im Text enthalten sind und codiere dann entsprechend.

PHP:
function checkEncoding($text)
{
    #ISO Sonderzeichen
    if(preg_match('/Ä|ä|Ü|ü|Ö|ö|ß/', $text))
    {
        $text = utf8_encode(strip_tags($text, $a_tags));
    }else{
        $text = utf8_decode(strip_tags($text, $a_tags));
    }
    
    return $text;
}
 
Zuletzt bearbeitet:
Hi,

Folgende Lösung:
Ich habe das Dokument wieder auf ISO Format gestellt und prüfe jetzt zuerst welche Art von Umlauten im Text enthalten sind und codiere dann entsprechend.

PHP:
function checkEncoding($text)
{
    #ISO Sonderzeichen
    if(preg_match('/Ä|ä|Ü|ü|Ö|ö|ß/', $text))
    {
        $text = utf8_encode(strip_tags($text, $a_tags));
    }else{
        $text = utf8_decode(strip_tags($text, $a_tags));
    }
    
    return $text;
}

Hmm, was soll der else-Zweig? Dort wandelst Du ja wieder nach ISO-8859-1 um und hast im Ergebnis wieder unterschiedliche Kodierungen...

LG
 
Weil ohne dieses else wieder unformatierte Sonderzeichen auftauchen. So deckt es für meinen Fall alle Varianten ab.
 
Es klappt jetzt alles soweit. Danke für die Hilfe. Nur das Anführungszeichen ist noch ein Problem. Siehe PN :rolleyes:
 
Da gibt es mehrere Möglichkeiten:
PHP:
"foo\"bar"
"foo\x22bar"
"foo".'"'."bar"
'foo"bar'
"foo".chr(0x22)."bar"
// …
 
Zurück