json_encode
не делает этого. У вас есть другой компонент, который выполняет кодировку HTML.
Если вы используете опции JSON_HEX_
, вы можете избежать появления любых символов <
или &
в выходных данных (они будут преобразованы в \u003C
или подобные строковые литералы JS), таким образом, возможно, избегая проблема:
json_encode($s, JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_QUOT)
хотя это будет зависеть от точного знания того, какие символы кодируются в HTML ниже. Может быть, не-ASCII символы тоже?