如何动态设置表情符号Unicode

时间:2020-03-24 10:35:46

标签: javascript html css unicode utf-8

这是我的html代码的样子:

Contact

但是它不起作用,并且在单击按钮时仅显示const mapToContact: // Variable declaration (value: Record<string, any>) => Contact // Variable type = (value) => { // Parameter list return { // Function body // Function body } // Function body }; // Function body 而不是表情符号。为什么会这样,如何动态设置表情符号?

2 个答案:

答案 0 :(得分:1)

<html>
<style>
    body {
        font-size: 18px;
    }
</style>
<body>
    <span id="tiger" style='font-size:100px;'>&#128161;</span>
    <button id="btn">SET TIGER</button>

    <script>
    var code = '129409';
         //
        document.getElementById('btn').addEventListener('click', function (e) {
            document.getElementById('tiger').innerText = String.fromCodePoint(parseInt(code));;
        });
    </script>
</body>
</html>

请在下面检查,希望您的查询得到解决。

<html>
<style>
    body {
        font-size: 18px;
    }
</style>
<body>
    <span id="tiger" style='font-size:100px;'>&#128161;</span>
    <button id="btn">SET TIGER</button>

    <script>
    var code = '129409';
         //
        document.getElementById('btn').addEventListener('click', function (e) {
            document.getElementById('tiger').innerText = String.fromCodePoint(parseInt(code));;
        });
    </script>
</body>
</html>

答案 1 :(得分:0)

HTML转义为“&#128161;”解析源文档时,HTML解析器会对其进行解码。

要设置文本节点的内容,请使用JavaScript字符串-从技术上讲,该字符串采用UTF-16编码。

如果您知道UTF-16中字符的十六进制表示,您可以 使用转义的Javascript来设置文本节点的内容,例如

element.textContent = "\ud83d\udca1"; // not recommended.

如果您知道十六进制或十进制的Unicode值,则可以使用静态String fromCodePoint方法:

 element.innerText = String.fromCodePoint( 0x1f4a1) // or
 element.innerText = String.fromCodePoint( 128161 )

但是,我建议的方法是将HTML文件编码为UTF-8,并使用标准字符串值设置文本内容:

 element.innerText = '?'

当然,有限的代码编辑器对Unicode字体的支持使这有些困难。