Bor-ka
Новичок
Перекодировка строки, содержащей UTF-8 + другую кодировку
Имеется строка, содержащая кроме UTF-8 еще какие либо символы кирилицы.
Например:
----------------------
Проверка связи FDSAFSD ывы dsdsds <IMG SRC=&# 106;&# 97;&# 118;&# 97;&# 115;&# 99;&# 114;&# 105;&# 112;&# 116;&# 58;&# 97;&# 108;&# 101;&# 114;&# 116;&# 40;&# 39;&# 88;&# 83;&# 83;&# 39;&# 41>
UPD: Добавил пробелы между символами, чтобы видно было
----------------------
Перекодировка из UTF-8 осуществляю ф-ей encode():
т.к. html_entity_decode($string, ENT_COMPAT, "UTF-8") не работает - "cannot yet handle MBCS in html_entity_decode()"
Если же вместе с UTF-8 содержится и кирилистический текст - кирилица превращается в крякозяблы. если только кирилица - то тоже крякозяблы.
Как решить вопрос преобразования из UTF-8 только UTF-8 символов.
Имеется строка, содержащая кроме UTF-8 еще какие либо символы кирилицы.
Например:
----------------------
Проверка связи FDSAFSD ывы dsdsds <IMG SRC=&# 106;&# 97;&# 118;&# 97;&# 115;&# 99;&# 114;&# 105;&# 112;&# 116;&# 58;&# 97;&# 108;&# 101;&# 114;&# 116;&# 40;&# 39;&# 88;&# 83;&# 83;&# 39;&# 41>
UPD: Добавил пробелы между символами, чтобы видно было
----------------------
Перекодировка из UTF-8 осуществляю ф-ей encode():
PHP:
function code2utf($num)
{
if ($num < 255)
return chr($num);
if ($num < 2048)
return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
if ($num < 65536)
return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
if ($num < 2097152)
return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
return '';
}
function encode($str)
{
return preg_replace('/&#(\\d+);/e', 'code2utf($1)',utf8_encode($str));
}
Если же вместе с UTF-8 содержится и кирилистический текст - кирилица превращается в крякозяблы. если только кирилица - то тоже крякозяблы.
Как решить вопрос преобразования из UTF-8 только UTF-8 символов.
