Здравствуйте. Есть фильтр, который фильтрует и переводит текстовые данные которые через него пробиваются. Код (Text): function name_filtered($name) { $name = iconv('UTF-8', 'windows-1251', $name); $name = preg_replace("/[^(\x9|\xA|\xD|\x20-\xD7FF|\xE000-\xFFFD|\x10000\-\x10FFFF)]*/", "", $name); if (strlen($name)<=50) return $name; return substr($name,0,50).'... '; } Но а как быть с таким текстом? ЧЁРНЫЕ ВОЛКР18+ 24/7 ~~~в…~~вќ№~~вќј~~в…~~~~~~~~~~ Когда этот текст пролезает через функцию, то на выходе получаем (Ничего). Не чего не выводится. Подскажите как сделать чтобы функция обрабатывала текст такого вида. В тексте видимо какие то символы ей не понятны.
"/[^(\x9|\xA|\xD|\x20-\xD7FF|\xE000-\xFFFD|\x10000\-\x10FFFF)]*/iu" Добавлено спустя 40 секунд: хотя не..
так кто что подскажет?)) Я так и не нашел решения( Добавлено спустя 47 секунд: Должен получится русский текст. И нормальные символы.
нахер это? Код (PHP): $name = preg_replace("/[^(\x9|\xA|\xD|\x20-\xD7FF|\xE000-\xFFFD|\x10000\-\x10FFFF)]*/", "", $name); так нужно знать кодировку в которую конвертнули текст и перевести в utf-8. если вы точно не знаете в какую кодировку конвертирован текст, нужно будет сделать методом перебора по существующим кодировкам и попытаться конвертнуть в utf-8.
Ребяят, эта функция кодирует UTF-8 в wind. И выводит русский текст. + Обрезает его до 50 символов. Все бы ничего, но если через функцию пропустить UTF-8 с какими то еще символами. Как я уже привел пример. ЧЁРНЫЕ ВОЛКР18+ 24/7 ~~~в…~~вќ№~~вќј~~в…~~~~~~~~~~ UTF-8 - Цифры - ~~~в…~~вќ№~~вќј ~~~~~~~~~~ < И вот эти символы. То функция выдает ничего.. Добавлено спустя 2 минуты 23 секунды: А нужно чтобы она либо убирала эти символы непонятные, или еще че нить с ними делала. Но на выходе все работало.
Я не знаю, что вы там мутите, но если вы не понимаете фразу " вам нужно знать кодировку конвертированной строки чтобы переводить ее в нужную для вас кодировку ", то можете сразу забить на это.