перекодировка из hex-unicode

<?php
/*
*перекодировка из hex-unicode
*автор: nc_soft
*28.08.07
*/

//в переменную s добавляется строка для перевода
//пара символов для теста:
$s='АБВ';

//регулярное выражение
$s=preg_replace_callback("|&#x(.{3});|is","unicode2win",$s);

//вывод обрабатываемой строки в кодировке виндовс-1251
echo $s;

//функция обратного вызова для обработки
function unicode2win($val)
{
    $val=hexdec($val[1]);
    if ($val==401) return "Ё";
    if ($val==451) return "ё";
    return chr($val-848);
}
?>