使用JavaScript和HTML打印表情符号
为什么这样做有效:使用JavaScript和HTML打印表情符号,javascript,html,unicode,emoji,Javascript,Html,Unicode,Emoji,为什么这样做有效: <p id="emoji">😄</p> JS术语中的“char”实际上是UTF-16代码单元,而不是完整的Unicode字符。(这种可悲的状况源于远古时代,当时没有任何区别*)要使用基本多语言平面之外的字符,您必须以UTF-16编码的形式书写: 在ECMAScript 6中,我们将获得一些接口,这些接口允许我们像处理完整的Unicode代码点一样处理字符串,尽管它们不完整,只是字符串类型的一个表面,仍然存储为代码单元序列。那么
<p id="emoji">😄</p>
JS术语中的“char”实际上是UTF-16代码单元,而不是完整的Unicode字符。(这种可悲的状况源于远古时代,当时没有任何区别*)要使用基本多语言平面之外的字符,您必须以UTF-16编码的形式书写: 在ECMAScript 6中,我们将获得一些接口,这些接口允许我们像处理完整的Unicode代码点一样处理字符串,尽管它们不完整,只是字符串类型的一个表面,仍然存储为代码单元序列。那么我们就可以做到:
String.fromCodePoint(0x1F604)
请参阅以获取一些polyfill代码,以便在当今的浏览器中使用此功能
(*:当我访问一台时间机器时,我会让希特勒一个人呆着,回去发明UTF-8。UTF-16肯定从来没有发明过!)如果不想在代码中包含
String.fromCodePoint()
,也可以使用hacky方法。它包括创建一个虚拟元素
elem=document.createElement('p')
。。。用工作HTML填充它
elem.innerHTML=“😄”
。。。最终得到它的价值
value=elem.innerHTML
简而言之,这是因为一旦设置HTML容器的值,该值就会转换为相应的字符
希望我能帮忙。欢迎来到UTF-16和代理配对的恐怖。
String.fromCharCode(0xD83D, 0xDE04)
String.fromCodePoint(0x1F604)