如何使用JavaScript将字符转换为ASCII码?

例如:

从“\n”中得到10。


当前回答

对于那些想要获得字符串的所有ASCII码的和的人:

'Foobar'
  .split('')
  .map(char => char.charCodeAt(0))
  .reduce((current, previous) => previous + current)

或者,ES6:

[...'Foobar']
  .map(char => char.charCodeAt(0))
  .reduce((current, previous) => previous + current)

其他回答

将字符串转换为UTF-8的数组(流):

const str_to_arr_of_UTF8 = new TextEncoder().encode("Adfgdfs");
// [65, 100, 102, 103, 100, 102, 115]

注意:ASCII是UTF-8的一个子集,所以这是一个通用的解决方案

如果你只有一个字符而不是字符串,你可以使用:

'\n'.charCodeAt();
'\n'.codePointAt();

省略0…

它曾经比'n'. charcodeat(0)慢得多,但我现在已经测试过了,我再也看不到任何区别了(带0和不带0执行了100亿次)。仅在Chrome和Firefox中测试了性能。

"\n".charCodeAt(0);

JavaScript将字符串存储为UTF-16(双字节),所以如果你想忽略第二个字节,只需在0000000011111111(即255)上按位&操作符将其剥离:

'a'.charCodeAt(0) & 255 === 97; // because 'a' = 97 0 
'b'.charCodeAt(0) & 255 === 98; // because 'b' = 98 0 
'✓'.charCodeAt(0) & 255 === 19; // because '✓' = 19 39

截至2023年

从字符到ASCII码

使用方法charCodeAt

控制台日志(“\ n "。charCodeAt ()

从ASCII码到字符

使用fromCharCode方法

console.log(String.fromCharCode(10))