【问题标题】:How to decode unicode HTML by JavaScript?如何通过 JavaScript 解码 unicode HTML?
【发布时间】:2013-04-10 15:08:19
【问题描述】:

如何使用 JavaScript 进行解码:

\u003cb\u003estring\u003c/b\u003e

<b>string</b>

(我在互联网上搜索过,有一些网站有同样的问题,例如: Javascript html decoding
或者 How to decode HTML entities
但它没有相同的编码格式
非常感谢!

【问题讨论】:

    标签: javascript unicode decode


    【解决方案1】:

    这是How do I decode a string with escaped unicode? 的副本。那里给出的答案之一应该有效:

    var x = '\\u003cb\\u003estring\\u003c/b\\u003e';
    JSON.parse('"' + x + '"')
    

    输出:

    '<b>string</b>'
    

    【讨论】:

    • 你是个天才...... :)
    • 迄今为止最好的答案!
    • 因为我刚刚又遇到了这个,这里有一个更现代的版本:JSON.parse(`"${x}"`)
    【解决方案2】:
    decodeURIComponent('\u003cb\u003estring\u003c/b\u003e');
    
    //  "<b>string</b>"
    

    编辑 - 如果可以的话,我会删除上面的答案。

    原来的问题有点模棱两可。

    console.log('\u003cb\u003estring\u003c/b\u003e'); 已经产生 &lt;b&gt;string&lt;/b&gt;

    如果\ 字符被转义,则可以使用替换方法将\\ 替换为仅\,从而允许正确的Unicode 转义序列。

    【讨论】:

    • 请注意,字符串已经是&lt;b&gt;string&lt;/b&gt;decodeURIComponent 什么也没做。 jsfiddle.net/ZAXux。这是一个 jsfiddle,当字符串字面意思是 \u003cb\u003estring\u003c/b\u003e jsfiddle.net/ZAXux/1 时,decodeURIComponent 什么都不做。
    • @Esailija 您的第二个 jsFiddle 有一个额外的“\”字符。至于你的第一个陈述,你是什么意思“什么都不做”?
    • 在javascript中你需要写"\\u"才能得到\u字面意思。如果您不转义反斜杠并编写 "\u" ,则会将其解释为 Unicode 转义序列。我的意思是它什么都不做,它可以在没有任何改变的情况下被删除,如第一个 jsfiddle 所示。所以:decodeURIComponent('\u003cb\u003estring\u003c/b\u003e'); === '\u003cb\u003estring\u003c/b\u003e'
    • @Esailija 你是 100% 正确的......我现在觉得自己真的很愚蠢。感谢您花时间向我解释这一点。我会删除这个答案。
    • 如果字符串在字面上包含\u003c,那么删除\只会产生u003c。转义序列只有在解析它们时才有意义。
    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多