Dobrý deň,
Vaše riešenie nie je dobré v všeobecne. Prečo? To je práca s listy s ASCII kód, pod 256 (previesť a zobraziť dobre), ale listy s ASCII kódu cez 256 som sa "?" znamenie.
Takže musíme spojiť naše dve riešenia v jednej 
Príklad:
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;
}
tento riadok: definovať, ako listy s ASCII kód, pod 256 nebude dekódovať moje funkcie, ale iba Som otestovanie still.I nie som úplne istý, že všetko funguje správne teraz.
Môžete vyskúšať tiež!