Sveiki,
Jūsų sprendimas yra geras, paprastai. Kodėl? Tai raštais su ASCII kodu pagal 256 (pertvarko ir rodomas geras), bet daugiau nei 256 raidžių su ASCII kodu turiu "?" ženklai.
Taigi mums reikia sujungti mūsų du sprendimai, vienas
Pavyzdžiui:
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;
}
šioje eilutėje: apibrėžti nei pagal 256 raštais su ASCII kodu, bus ne iššifruoti savo funkciją, bet tik Esu tai bandymai still.I nesu visiškai tikras, kad viskas veikia teisingai.
Galite išbandyti jį taip pat!