今天遇到個需求:要生成隨機的漢字。
想了想可以先生成隨機的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))); //中中
這個方法是可以直接將一個十進制的編碼轉換成漢字的。