将ASCII代码存储到变量中,然后显示

时间:2017-01-28 15:15:05

标签: javascript html5 ascii

我目前正在使用Visual Studio社区并学习Javascript / html5。我遇到了一个问题,我试图使用javascript将ASCII代码存储在变量中,但是,当我尝试显示它时,它会显示实际的代码而不是预期的字符。

 <script type="text/javascript">

    x = "&#24171";

    function ranAlert(){
        alert(x);
    }
 </script>

 <form>
    <input type="button" value="me" onclick="ranAlert()" />

 </form>

当我点击按钮“&amp;#24171”时,此处的输出将显示。但是如何让它显示实际的预期角色“帮”?

1 个答案:

答案 0 :(得分:4)

对于您的角色,您需要使用JavaScript表示法而不是HTML,因为您不会将该字符串用于任何HTML标记;您只需将其传递给alert()

alert("\u5e6b");

JavaScript表示法使用十六进制,因此您需要将24171转换为十六进制表示法。您可以在浏览器控制台中执行此操作:

(24171).toString(16)

给出5e6b

由于这个字符可以用UTF-16表示,处理问题的一种更简单的方法就是直接在字符串中使用字符:

alert("幫");

对于某些Unicode代码点,JavaScript中的表示需要JavaScript字符的,因为JavaScript字符串使用UTF-16编码,而某些字符需要超过16位才能表示。非常有用的网站FileFormat.org拥有Unicode资源,包括几种流行语言(包括JavaScript)中每个角色的即用型表示。

如果你想在CSS中使用那个代码点,比如说content:属性的值,你会略有不同的转义。 CSS编码方案允许6个十六进制数值:

.my-glyph { content: "\005E6B"; }

最后请注意使用术语&#34;字符&#34;并不完全准确,因为Unicode反映了许多书写系统涉及由几个部分组成的字形这一事实。我对术语一般不是很严格,所以不要效法我的榜样;重要的是要记住,看起来像一个单一的字形(字母用户称之为&#34;字符&#34;)实际上可能由几个单独的代码点组成。