サービス リクエストから次のような JSON が返されたとします。
{
"message": "We're unable to complete your request at this time."
}
なぜそのアポストロフィがそのようにエンコードされているのかはわかりません( '
)。私が知っているのは、それをデコードしたいということだけです。
ここで、jQuery を使用した 1 つのアプローチを思いつきました。
function decodeHtml(html) {
return $('<div>').html(html).text();
}
しかし、それは(非常に)ハッキーなようです。もっと良い方法は何でしょうか?「正しい」方法はあるのでしょうか?
ベストアンサー1
これは HTML 文字をデコードする私のお気に入りの方法です。このコードを使用する利点は、タグも保持されることです。
function decodeHtml(html) {
var txt = document.createElement("textarea");
txt.innerHTML = html;
return txt.value;
}
入力:
Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>
出力:
Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>