Всем привет! Чет не получается создать функцию для перекодирования кириллицы... PHP: preg_replace('#\\\\u([0-9a-f]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',$...) Переменных $... может быть N кол-во... Например: Вот так все работает PHP: echo preg_replace('#\\\\u([0-9a-f]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',('\u041f\u0441\u0430\u0439\u043d\u044d\u0439\u0440\u043e')); А так нет PHP: <? header('Content-Type: Text/html; charset=utf-8'); function cod($c) { preg_replace('#\\\\u([0-9a-f]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',$c); } print (cod('\u041f\u0441\u0430\u0439\u043d\u044d\u0439\u0440\u043e')); ?>
PHP: header('Content-Type: Text/html; charset=utf-8'); $a = "\\u041f\\u0441\\u0430\\u0439\\u043d\\u044d\\u0439\\u0440\\u043e"; $b = "\\u0420\\u043e\\u0434\\u0440\\u044d\\u0439\\u043d\\u044d\\u0439\\u043a\\u0438"; function cod($c) { echo preg_replace('#\\\\u([0-9a-f]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',$c); } echo $a.' - '.cod($b); На выходе получаю: PHP: Родрэйнэйки\u041f\u0441\u0430\u0439\u043d\u044d\u0439\u0440\u043e - А нужно: PHP: \u041f\u0441\u0430\u0439\u043d\u044d\u0439\u0440\u043e - Родрэйнэйки Как правильно сделать, почему при выводе на первое место ставиться вывод из функции?
Курить надо прекращать. Второй пример из первого поста не работал, т.к. в функции return отсутствует. Пример из второго поста криво работает из-за двойного echo.