Строковое кодирование в javascript UTF-16 или UTF-8 - PullRequest
0 голосов
/ 15 апреля 2020

Читая charAt в MDN, я обнаружил, что строки в javascript последовательности UTF-16?

Итак, чтобы проверить мое понимание, я попробовал следующий скрипт в NodeJS

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

Как это может быть 3 байта? Насколько я знаю, это должно быть 2 или 4 байта. Как строка UTF-16 может дать 3 байта?

Я рассматривал различные вопросы здесь, в StackOverflow, но не нашел объяснения этому часть.

1 Ответ

1 голос
/ 15 апреля 2020

Поскольку при создании Buffer.from строки требуется кодировка, а если вы ее не указали, по умолчанию используется UTF-8.

Похоже, вы ищу либо

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

, либо просто

"€".length * 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...