我不熟悉Javascript,并且正在寻找返回字符的UNICODE值的函数,并且给定UNICODE值,返回等效的字符串。我确信有一些简单的东西,但我没有看到它。
示例:
答案 0 :(得分:65)
看看:
String.fromCharCode(64)
和
String.charCodeAt(0)
第一个必须在字符串类(字面意思为String.fromCharCode...
)上调用,并返回“@”(对于64)。第二个应该在String 实例上运行(例如,"@@@".charCodeAt...
)并返回第一个字符的Unicode代码('0'是字符串中的一个位置,你可以得到通过将其更改为另一个数字来代码中的其他字符。)
脚本代码段:
document.write("Unicode for character ਔ is: " + "ਔ".charCodeAt(0) + "<br />");
document.write("Character 2580 is " + String.fromCharCode(2580) + "<br />");
给出:
Unicode for character ਔ is: 2580 Character 2580 is ਔ
答案 1 :(得分:4)
由于JavaScript uses UCS-2 internally,String.fromCharCode(codePoint)
不适用于补充Unicode字符。例如,如果codePoint
为119558
(0x1D306
,则为''
字符)。
如果要基于非BMP Unicode代码点创建字符串,可以使用Punycode.js的实用程序函数在UCS-2字符串和UTF-16代码点之间进行转换:
// `String.fromCharCode` replacement that doesn’t make you enter the surrogate halves separately
punycode.ucs2.encode([0x1d306]); // ''
punycode.ucs2.encode([119558]); // ''
punycode.ucs2.encode([97, 98, 99]); // 'abc'
如果要为字符串中的每个字符获取Unicode代码点,则需要将UCS-2字符串转换为UTF-16代码点数组(其中每个代理对形成一个代码点) 。您可以使用Punycode.js的实用程序功能:
punycode.ucs2.decode('abc'); // [97, 98, 99]
punycode.ucs2.decode(''); // [119558]
答案 2 :(得分:1)
此处生成字母数组的示例:
const arr = [];
for(var i = 0; i< 20; i++) {
arr.push( String.fromCharCode('A'.charCodeAt(0) + i) )
}