今天遇到个需求:要生成随机的汉字。
想了想可以先生成随机的unicode码,再将它解码就行了。
百度的时候找到了解码的函数:unescape
只要把生成的unicode码前加上%u
就能解码为汉字,问题解决后去MDN上找了下这个函数的介绍,看到该函数已废弃,虽然现在火狐上还能用,但还是放弃了这个函数,又去试了下推荐的函数decodeURI
。
虽然不知道它解码的是什么码,但总之生成的十六进制unicode码它解不了。。。看格式它接收的是URL中汉字被转换成的那个码,又经过百度后找到个最佳选择:
String.fromCharCode()
静态 String.fromCharCode() 方法返回由指定的 UTF-16 代码单元序列创建的字符串。
可以测试一下它的转换是否正确:
console.log(escape("中")); //%u4E2D
console.log(String.fromCharCode(parseInt("4E2D", 16))); //中
console.log(String.fromCharCode(parseInt("4E2D", 16), parseInt("4E2D", 16))); //中中
这个方法是可以直接将一个十进制的编码转换成汉字的。