привет,
Ваше решение не является хорошим в целом. Почему? Это работа с письмами с 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 я не совсем уверен, что все работает корректно.
Вы можете проверить это слишком!