天天看點

unicode轉中文的方法

今天遇到個需求:要生成随機的漢字。

想了想可以先生成随機的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))); //中中
           

這個方法是可以直接将一個十進制的編碼轉換成漢字的。