在JavaScript中为Unicode值调用Asc()和Chr()的简便方法是什么?

我对Javascript不太熟悉,正在寻找返回字符的UNICODE值的函数,并给定UNICODE值的函数返回等效的字符串。 我敢肯定有简单的东西,但是我看不到。

例:

  • ASC(“ A”)= 65
  • CHR(65)=“ A”
  • ASC(“”)= 2580
  • CHR(2580)=“”
Noah asked 2020-08-01T15:32:45Z
3个解决方案
69 votes

看一下:

String.fromCharCode(64)

String.charCodeAt(0)

必须在String类上调用第一个(字面意义为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 ਔ
paxdiablo answered 2020-08-01T15:33:26Z
5 votes

由于JavaScript内部使用UCS-2,因此String.fromCharCode(codePoint)无法用于补充Unicode字符。 例如,如果codePoint1195580x1D306,对于'𝌆'字符)。

如果要基于非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]
Mathias Bynens answered 2020-08-01T15:33:55Z
1 votes

在此处生成字母数组的示例:

const arr = [];
for(var i = 0; i< 20; i++) {
    arr.push( String.fromCharCode('A'.charCodeAt(0) + i) )
}
user3479125 answered 2020-08-01T15:34:15Z
translate from https://stackoverflow.com:/questions/463786/what-is-an-easy-way-to-call-asc-and-chr-in-javascript-for-unicode-values