Tom*_*und 18 html javascript unicode emoji
为什么这样做:
<p id="emoji">😄</p>
Run Code Online (Sandbox Code Playgroud)
而这不是:
document.getElementById("emoji").innerHTML = String.fromCharCode(parseInt('1f604', 16));
Run Code Online (Sandbox Code Playgroud)
bob*_*nce 37
JS术语中的'char'实际上是UTF-16代码单元,而不是完整的Unicode字符.(这种悲惨的事态源于古代没有差异*.)要使用基本多语言平面以外的字符,你必须用代替对的16的UTF-16编码形式写它16位代码单位:
String.fromCharCode(0xD83D, 0xDE04)
Run Code Online (Sandbox Code Playgroud)
在ECMAScript 6中,我们将获得一些接口,让我们处理字符串,就好像它们是完整的Unicode代码点一样,尽管它们不完整,并且只是仍然存储为代码单元序列的String类型的外观.然后我们就能做到:
String.fromCodePoint(0x1F604)
Run Code Online (Sandbox Code Playgroud)
请参阅此问题以获取一些填充代码,以便您在今天的浏览器中使用此功能.
(*:当我进入时间机器时,我将单独离开希特勒,然后再回到发明UTF-8.绝对不能使用UTF-16!)
如果您不想包含String.fromCodePoint()在代码中,也可以使用hacky方法.它包括创建一个虚拟元素......
elem=document.createElement('p')
...使用工作HTML填充...
elem.innerHTML = "😄"
......最终获得它的价值
value = elem.innerHTML
简而言之,这是有效的,因为只要设置了HTML容器的值,该值就会转换为相应的字符.
希望我能提供帮助.
| 归档时间: |
|
| 查看次数: |
14583 次 |
| 最近记录: |