Fwio

JS 中字符串与 ASCII 码的相互转换

ASCII 码转字符串

使用String.fromCharCode(),传入一或若干个 ascii 码,返回对应字符组成的字符串。

static String.prototype.fromCharCode(...codes: number[]): string

注意: 这是一个静态方法,只能在String类上调用。

字符串转 ASCII 码

使用String.prototype.charCodeAt(),在字符串变量上调用该方法,返回指定索引上字符的 UTF-16 编码。

String.prototype.charCodeAt(index: number): number

另一个 API - codePointAt()

在 MDN 上,你很容易从侧边栏看到charCodeAt下边,一个同样将字符转为编码的 API:

String.prototype.codePointAt(index: number): number

关于它们的区别,MDN 解释道: UTF-16 码元(code unit)只匹配能用一个 UTF-16 码元表示的 Unicode 码位(code point)。 如果一个 Unicode 码位不能只用一个 UTF-16 码元表示,那么charCodeAt()只返回第一个码元对应的码位, 而codePointAt()返回完整的码位。

StackOverflow 上有个精炼的总结:

charCodeAt 和 charPointAt 的区别