UTF-8 и illegal character, как от онных избавиться

advocat

developer
UTF-8 и illegal character, как от онных избавиться

собсвенно для примера небольшой фрагмент:

скажем есть переменная, если корректно (как она приходит) ее записать, то она будет выглядеть так:
PHP:
$str = 'Nation'.chr(0x92).'s product';
и есть разбивка этой строки по символам:
PHP:
preg_match_all("/./u", $str, $dummy);
соответсвенно если сделать
PHP:
var_dump($dummy);
то получим - пустой массив ...

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

Demiurg

Guest
написать регулярное выражение, которое вычленяет utf-символы. Можно еще попробовать поиграть с iconv, заставить сконвертить из utf в utf.
 

advocat

developer
Demiurg
c iconv игрался, только в PHP4 он возращает пустую строку и пишет notice с error 68, в PHP5 - выводит нотайс и кусок до illegal символа

я бы с радостью написал такую регулярку, вопрос в том, как ее написать ? Как вычислить является ли символ legal для UTF-8
 

Demiurg

Guest
и //IGNORE не помогло ?

>Как вычислить является ли символ legal для UTF-8
для этого надо знать формат utf-8
 

advocat

developer
Demiurg

в это то и проблема, я не смог разобраться толком с форматом, особенно момент для разных языков формирование разного кол-ва байт для одного символа

а вот из //ignore?
 

Demiurg

Guest
http://www.google.com/search?q=utf8+encoding&sourceid=opera&num=0&ie=utf-8&oe=utf-8

>а вот из //ignore?
[m]iconv[/m]
 

advocat

developer
Demiurg

большое человеское спасибо ...
а ларчик то просто открывался

PHP:
$str = iconv("UTF-8", "UTF-8//IGNORE", $str);
эта строчка - решила все проблемы
тема закрыта
 
Сверху