Как убрать из юникод-строки символы кавычек и двойных кавычек

korpus

злой бобёр
Как убрать из юникод-строки символы кавычек и двойных кавычек

У меня сайт на юникоде. Расширение mb_string отсутствует. Magic quotes отключены. При обработке данных из форм возникла проблема с заменой символов ' и " на их эквиваленты &# 39; и &# 34;

Строка ниже отлично работает для cp1251, но не хочет работать на юникоде.
Код:
         $header=str_ireplace('"', "&# 34;", $header);
Пробовал использовать
Код:
$header=utf8_decode($header);
Код:
         $header=htmlspecialchars($header, ENT_COMPAT, 'UTF-8');
Это не помогает. Как сделать замену этих символов?
 

Вурдалак

Продвинутый новичок
Чушь, делай отладку тщательней.

И зачем вообще тебе это понадобилось?
 

korpus

злой бобёр
Если в форму введены ошибочные данные, то после нажатия Submit форма показывается снова, а данные в ней уже заполнены (чтобы заполнявший не проделывал туже работу). Когда пользователь вводит в поле слово с кавычками, то их необходимо также показать в полях.

<input type="text" name='header" value="Это какой-то "текст" с кавычками" />

Как видите, текст будет показан ровно до первой двойной кавычки, а остальной текст обрежется браузером. При замене двойных кавычек на юникод сущности этого не произойдёт.

<input type="text" name='header" value="Это какой-то &# 34;текст&# 34; с кавычками" />

В юникод-сущностях я сделал пробел, чтобы браузер их не преобразовал.
 

korpus

злой бобёр
Разобрался! Функция htmlspecialchars($header, ENT_COMPAT, 'UTF-8') работает как и требовалось. С юникодом раньше дела не имел, вот и возникают всякие недоразумения.
Упырь, спасибо!
 
Сверху