hej,
Din løsning er ikke god i almindelighed. Hvorfor? Dette er arbejder med bogstaver med ASCII-kode under 256 (konverteres og vises godt), men breve med ASCII-kode over 256 jeg har "?" tegn.
Så vi nødt til at kombinere vores to løsninger i én 
Eksempel:
PHP Code:
function vbet_encodeToSafeUTF8(&$string) {
$string = preg_replace('/([\340-\357])([\200-\277])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-224)*4096 + (ord(\'\\2\')-128)*64 + (ord(\'\\3\')-128)).\';\'',
$string);
//decode two byte unicode characters
$string = preg_replace('/([\304-\337])([\200-\277])/e',
'\'&#\'.((ord(\'\\1\')-192)*64+(ord(\'\\2\')-128)).\';\'',
$string);
$string = utf8_decode($string);
return $string;
}
denne linje: definere end breve med ASCII-kode under 256, vil ikke være afkodes af min funktion, men kun ved Jeg teste den still.I er ikke helt sikker på, at alt fungerer korrekt nu.
Du kan teste det også!