tere,
Teie lahendus ei ole hea üldiselt. Miks? See töötab koos tähti ASCII koodi alla 256 (ümber ning kuvatakse hea), kuid tähti ASCII koodi üle 256 mul "?" märke.
Nii et me peame ühendada meie kaks lahendust ühes
näiteks:
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;
}
rida: määratleda kui tähti ASCII koodi alla 256 saab olema mitte dekodeerida minu funktsioon, vaid ainult Olen katsetamine ta still.I am ei ole päris kindel, et kõik töötab korralikult nüüd.
Te saate testida ka!