解码JavaScript字符串中的HTML字符引用

时间:2013-08-20 13:33:31

标签: javascript unicode encoding html-entities

在我的程序中,我在条目中有这个字符串:

var toto = "Loïc";

我想解码这个字符串以便:

'Loïc'

我该怎么做?

3 个答案:

答案 0 :(得分:3)

这些是HTML字符引用,也称为“HTML实体”。

要在JavaScript中解码(或编码)它们,最好使用the he library(对于“HTML实体”)是一个用JavaScript编写的健壮的HTML实体编码器/解码器。它支持all standardized named character references as per HTML,处理ambiguous ampersands和其他边缘情况just like a browser would,具有广泛的测试套件,并且 - 与许多其他JavaScript解决方案相反 - 处理星体Unicode符号就好了。 An online demo is available.

var input = 'foo © bar ≠ baz 𝌆 qux';
var output = he.decode(input);
console.log(output);
// → 'foo © bar ≠ baz  qux'

(顺便说一句,所有这些与UTF-8编码无关。我已经从这个问题中删除了标签。)

答案 1 :(得分:2)

ÃÃ是实体编号。你可以用这个:

var element = document.createElement('div');
element.innerHTML = toto;
console.log(element.textContent);
> "Loïc"

答案 2 :(得分:-3)

查看内置JavaScript函数encodeURIComponent(str)encodeURI(str)

var muUrl="http://www.google.com?ul=اردوان";
var myUrl2 = "http://XXXX.com/default.aspx?link=" + encodeURIComponent(myUrl);

在你的情况下,这应该有效