hello,
Tvoja rešitev ni dobra v splošnem. Zakaj? To je delo s črkami z ASCII kodo pod 256 (pretvori in prikaže dobro), vendar črke z ASCII kodo nad 256 imam "?" znaki.
Zato moramo združiti naše dve rešitvi v eni
Na primer:
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;
}
to vrstico: opredeliti kot črke z ASCII kodo pod 256 ne bo dekodirajo po moje funkcije, ampak le z Jaz sem ga testiranje still.I nisem povsem prepričan, da vse deluje pravilno zdaj.
Lahko ga test preveč!