Forum Webscript.Ru

Программирование => PHP => Тема начата: WG от 18 Января 2007, 07:32:46

Название: перевод символов &#xxxx; в win-1251
Отправлено: WG от 18 Января 2007, 07:32:46
есть строка $str2=\'привет\';

Из нее на выходе надо получить строку ПРИВЕТ, т.е пишу функцию:


function decode($str2, $quote_style=ENT_COMPAT){
$trans2 = get_html_translation_table(HTML_ENTITIES);
$trans2 = array_flip($trans2);
$encoded2 = strtr($str2, $trans2);
$original = strtr($encoded2, $trans2);
return $original;
}

echo ecode($str2);

В результате перевода не происходит... в чем может быть ошибка?

Использовал и другую функцию:
 echo preg_replace_callback(\'/&#(\\d+);/s\', \'entities2windows_callback\', $str2);
function entities2windows_callback($p)
{
  $c = $p[1];
  if ($c < 256) return chr($c);
  $u = pack(\'n\', $c);
  return @iconv(\'UCS-2BE\', "windows-1251", $u);
}

Результат тот же. У хостера iconv установлен
Название: перевод символов &#xxxx; в win-1251
Отправлено: Egorsha от 18 Января 2007, 08:49:45
А что выдает в результате?

(я проверил Ваш код на локальном сервере в обеих случаях выдает "привет". Вроде нет ошибки.)