猿问

如何正确地解码包含特殊HTML实体的字符串?

如何正确地解码包含特殊HTML实体的字符串?

假设我从如下所示的服务请求中获得一些JSON:

{
    "message": "We're unable to complete your request at this time."}

我没有把握为什么使徒是这样编码的('我只知道我想破解它。

这里有一种使用jQuery的方法突然出现在我的脑海中:

function decodeHtml(html) {
    return $('<div>').html(html).text();}

不过,这似乎很讨厌。有什么更好的方法吗?有“正确”的方法吗?


慕神8447489
浏览 570回答 3
3回答

四季花海

不要用DOM来做这件事。使用DOM解码HTML实体(如当前接受的答案中所建议的)将导致跨浏览器结果的差异.对于根据HTML标准中的算法解码字符引用的健壮和确定性解决方案,请使用这个他图书馆..来自它的自述:他(用于“HTML实体”)是一个健壮的用JavaScript编写的HTML实体编码器/解码器。它支持所有标准化的命名字符引用,如HTML所示,手柄歧义符号和其他边缘情况就像浏览器一样,有一个广泛的测试套件,与许多其他JavaScript解决方案相反-他处理星体Unicode符号很好。有一个在线演示。下面是你如何使用它的方法:he.decode("We&#39;re&nbsp;unable&nbsp;to&nbsp;complete&nbsp;your&nbsp;request&nbsp;at&nbsp;this&nbsp;time.");→&nbsp;"We're&nbsp;unable&nbsp;to&nbsp;complete&nbsp;your&nbsp;request&nbsp;at&nbsp;this&nbsp;time."免责声明:我是他图书馆。看见这个堆栈溢出回答想了解更多信息。
随时随地看视频慕课网APP
我要回答