首页 > 解决方案 > javascript UTF-16 或 UTF-8 中的字符串编码

问题描述

在 MDN 中阅读charAt时,我发现 UTF-16 的 javascript 序列中的字符串?

因此,为了验证我的理解,我在 NodeJS 中尝试了以下脚本

Buffer.from("€").length // gives 3

这怎么可能是 3 个字节?据我所知,这应该是 2 或 4 个字节,UTF-16 字符串如何给出 3 个字节?

我在 StackOverflow 中查看了不同的问题,但没有找到这部分的解释。

标签: javascriptstring

解决方案


因为在创建一个Buffer.from字符串时,它需要一个编码,如果你不指定一个,它默认为 UTF-8。

你似乎正在寻找

Buffer.from("€", "utf16le").length

要不就

"€".length * 2

推荐阅读