Не удивлюсь.

На самом деле, это стандартное поведение jqGrid. Я его старался максимально не касаться.
По умолчанию jqGrid выводит в точности то, что пришло от сервера. Предполагалось, что каждый разработчик все равно будет чуть-чуть подгонять под себя и реализует такой способ фильтрации, который подходит для него. Я знаю - например, многие любят заменять символы на входе, а не на выходе.
Но, пожалуй, чаще это зло. Пусть по умолчанию кодирует спец символы.
Добавил опцию
encode для колонок. По умолчанию она -
true. Установив
false, можно избирательно выключать кодирование там, где это нужно.
Чтобы выключить глобально, в своем адаптере добавляем:
PHP:
$this->defaults['cols']['encode'] = false;
Чтобы вмешаться в процесс кодирования - перегружаем функцию
outputEncodeValue.
Можно сделать какую-нибудь свою волшебную фильтрацию XSS, если вам это нужно.