Перекодировка символов

eXtreme

Новичок
Перекодировка символов

Как перевести этот код в windows-1251?
PHP:
красный
 

SiMM

Новичок
PHP:
function Unicode2Charset($str,$charset = 'Windows-1251'){ // by SiMM
  return preg_replace('~&#(\d+);~se','iconv("UTF-16LE",$charset,pack("v",$1))',$str);
}

echo Unicode2Charset('красный');
 

Mysterious

Новичок
А если символы без ";"?
то как тогда?
PHP:
&#1050&#1088&#1067&#1052 &#1043 &#1071&#1090&#1072
Может кто подскажет как правильно построить регулярное выражение для замены?
 

eXtreme

Новичок
~&#(\d+)~se
без ';'

~&#(\d+)\s*~se
без ';' и если между кодами возможны пробелы
 

SiMM

Новичок
> ~&#(\d+)\s*~se
> без ';' и если между кодами возможны пробелы
А кто вам сказал, что пробелы там лишние?
И вообще, где вы берёте эту траву
> &#1050&#1088&#1067&#1052 &#1043 &#1071&#1090&#1072
без точек с запятой?
 
Сверху