hello,
Sinun ratkaisu ei ole hyvä yleensä. Miksi? Tämä työskentelee kirjainten ASCII-koodi, 256 (muunnetaan ja esitetään hyviä), mutta kirjainten ASCII-koodin yli 256 Olen "?" merkkejä.
Joten meidän on yhdistää kaksi ratkaisua yhdessä
Esimerkiksi:
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;
}
tämä rivi: määritellä kuin kirjainten ASCII-koodin alle 256 ei varmasti dekoodata minun toiminto mutta vain Olen testaamalla sitä still.I en ole täysin varma, että kaikki toimii oikein nyt.
Voit testata sitä myös!