hej,
Din lösning är inte bra i allmänhet. Varför? Detta är att arbeta med bokstäver med ASCII-kod under 256 (konverteras och visas bra) men bokstäver med ASCII-kod över 256 jag har "?" skyltar.
Så vi måste förena våra två lösningar i en 
exempel:
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;
}
denna rad: definiera än brev med ASCII-kod under 256 kommer inte att avkodas av min funktion utan endast genom Jag testa den still.I är inte helt säker på att allt fungerar korrekt nu.
Du kan testa det också!