Здраво,
Твојот решение не е добро во општо. Зошто? Ова е работа со писма со ASCII код во 256 (конвертира и ќе се прикажува добро), но букви со ASCII код над 256 имам "?" знаци.
Значи ние треба да се комбинираат нашите две решенија во еден
пример:
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;
}
оваа линија: се дефинира од букви со ASCII код под 256 нема да се декодира од мојата функција, но само од страна на Јас сум тоа тестирање still.I не сум целосно сигурен дека се работи правилно сега.
Можете да го тестот исто така!