Отслеживание Unicode символов

Pustota

Новичок
Отслеживание Unicode символов

Есть визуальный редактор. В него пользователи бьют текст уже с форматированием. Иногда попадаются символы Unicode типа ½, фунты и пр.
Как отследить по коду, имеется ли в тексте символ с данным кодом. И чтобы я мог просто в массив добавлять коды. Например, код 0x4.
$kod_array=('_код1_', '_код2_', '_код3_', '_код4_', '0x4');
Как мне сделать чтобы скрипт мне уже перед оправкой формы проверял на наличие всех кодов массиве?
Нужно именно по коду так сделать. Подскажите, плиз.
 

EugeneVC

Новичок
в какой кодировке пользователи забивают текст?
unicode - это 2 байта
интересно как они их забивают
 

SiMM

Новичок
> unicode - это 2 байта
Unicode это не кодировка, а стандарт кодирования, и далеко не во всех кодировках всегда 2 байта (UTF-8, UTF-32).
 

Pustota

Новичок
Проблема в том, что попадают туда такие символы. Как они туда их умудрились занести - ума не приложу. Делаю на весь текст htmlspecialchars() - они все равно остаются. Потом это идет в XML данные и Яндекс ворчит, что встретился код: Invalid character (Unicode: 0x4). Как его отфильтровать можно?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Pustota фильтрация входных данных - одна из основных задач программиста. Есть множество путей решения, каждый выбирает свое. Что-то конкретное посоветовать сложно, выбор в этом вопросе весьма субъективен.
Даже просто перечислять варинты не получится. Лучше почитай про фильтрацию данных.
 

EugeneVC

Новичок
SiMM
unicode - есть как стандарт так и кодировка в которой 2 байта )
Pustota
у тебя какая кодировка на страничке?
 

Pustota

Новичок
EugeneVC: win1251.

WP: Спасибо, что хоть синтаксис подсказал. А то я ломал голову... Так-то с str_replace() пользуюсь давно. Просто не знал как фильтровать именно Unicode символы через эту функцию.
 

Андрейка

Senior pomidor developer
Pustota
Делаю на весь текст htmlspecialchars() - они все равно остаются.
а где в мануале написано, что htmlspecialchars делает еще что-то кроме замены вполне определенных сущностей?
 

SiMM

Новичок
> unicode - есть как стандарт так и кодировка в которой 2 байта )
2 байта - это UCS-2BE, UCS-2LE, UTF-16BE, UTF-16LE. О какой из них речь, и вообще, почему речь идёт не об UTF-8, UTF-7 или UTF-32, по слову Unicode не догадаешься. Тем более, что вполне вероятно, что автор нарвался на Numeric character references
 

WP

^_^
Pustota
Функция к этой записи отношения не имеет, к кодировке тоже, это просто escaped-последовательность для подставления байта по HEX-значению.
 

EugeneVC

Новичок
а не может быть такого?

копируют например из WORD в textarea сайта
если такого символа нет в ANSI - то представляют его как 0x456
 

SiMM

Новичок
Скорее, как і или і
Может, если кодировка страницы - не мультибайтовая.
 

cDLEON

Онанист РНРСlub
*покраснел и убежал от стыда*
Сори я немного не в себе тогда был =)
 
Сверху