прывітанне,
Ваша рашэнне не з'яўляецца добрым ў цэлым. Чаму? Гэта праца з лістамі з 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 я не зусім упэўнены, што ўсё працуе карэктна.
Вы можаце праверыць гэта занадта!