如何使用JavaScript/jQuery显示UTF-8字符并循环切换星座符号
解决循环展示星座符号的问题
错误原因
你遇到的malformed Unicode character escape sequence错误,是因为JavaScript里的\uXXXX转义序列必须在代码解析阶段就是完整的4位十六进制字符串,不能通过后期字符串拼接生成。你用"\u" + hexZodiac的写法,会被JS当成不完整的转义序列,直接报错。
而之前用&#XXXX格式时,text()方法会把内容当作纯文本输出,不会解析HTML实体,所以才会原样显示。
解决方案
这里有两种简单可行的方法:
方法1:使用String.fromCodePoint()(推荐)
这个方法可以直接接收十进制的Unicode码点,生成对应的字符,不需要转换进制,代码更简洁:
setInterval(changeZodiac, 200); var whichZodiac = 9800; function changeZodiac() { $("#zodiac").text(String.fromCodePoint(whichZodiac)); whichZodiac++; if (whichZodiac > 9811) { whichZodiac = 9800; } }
方法2:用html()解析HTML实体
如果你还是想用&#XXXX的格式,把text()换成html()方法,它会解析HTML实体并渲染成对应字符:
setInterval(changeZodiac, 200); var whichZodiac = 9800; function changeZodiac() { $("#zodiac").html("&#" + whichZodiac + ";"); whichZodiac++; if (whichZodiac > 9811) { whichZodiac = 9800; } }
内容的提问来源于stack exchange,提问作者Jaron
相关产品推荐
相关产品推荐

