ciao,
La soluzione non è buona in generale. Perché? Questo sta lavorando con le lettere con codice ASCII sotto 256 (convertito e visualizzato bene), ma le lettere con codice ASCII superiore a 256 ho "?" segni.
Quindi abbiamo bisogno di unire le nostre due soluzioni in un unico ![Wink](images/smilies/wink.png)
esempio:
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;
}
questa riga: definire di lettere con codice ASCII meno di 256 non verrà decodificato dalla mia funzione, ma solo da Lo sto test still.I non sono del tutto sicuro che tutto funziona correttamente ora.
Lo si può testare anche!