Γεια σας,
Η λύση σας δεν είναι καλή σε γενικές γραμμές. Γιατί; Αυτό είναι που εργάζονται με επιστολές με ASCII κώδικα κάτω από 256 (μετατρέπεται και εμφανίζεται καλά), αλλά επιστολές με κώδικα ASCII πάνω από 256 που έχω ";" πινακίδες.
Πρέπει λοιπόν να συνδυάσουμε δύο λύσεις μας σε ένα 
παράδειγμα:
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;
}
αυτή τη γραμμή: καθορίζουν από γράμματα με κώδικα ASCII υπό 256 δεν θα αποκωδικοποιούνται από τη λειτουργία μου, αλλά μόνο από Είμαι αυτή τη δοκιμή still.I δεν είμαι απολύτως σίγουρος ότι όλα δουλεύουν σωστά τώρα.
Μπορείτε να το δοκιμάσετε επίσης!