Строки JavaScript - UTF-16 против UCS-2?

Я читал в некоторых местах, что строки JavaScript являются UTF-16, а в других местах - UCS -2. Я немного поискал, пытаясь выяснить разницу, и нашел следующее:

Q: В чем разница между UCS-2 и UTF-16?

A: UCS-2 - устаревшая терминология, относящаяся к Unicode реализация до Unicode 1.1, до суррогатных кодовых точек и UTF-16 были добавлены в версию стандарта 2.0. Этот термин должен сейчас избегать.

UCS-2 не определяет отдельный формат данных, потому что UTF-16 и UCS-2 идентичны для целей обмена данными. Оба 16-битные и имеют точно такое же представление единицы кода.

Иногда в прошлом реализация помечалась как «UCS-2», чтобы указывают, что он не поддерживает дополнительные символы и не интерпретировать пары суррогатных кодовых точек как символы. Такой реализация не будет обрабатывать свойства символа, границы кодовой точки, сопоставление и т. д. для дополнительных символов.

через: http://www.unicode.org/faq/utf_bom.html # utf16-11

У меня вопрос, потому что методы и индексы строкового объекта JavaScript работают с 16-битными значениями данных, а не с символами, что заставляет некоторых людей считать его UCS-2? И если да, то будет ли строковый объект JavaScript, ориентированный на символы, а не на 16-битные блоки данных, считаться UTF-16? Или мне чего-то еще не хватает?

Изменить: В соответствии с просьбой, вот некоторые источники, в которых говорится, что строки JavaScript являются UCS-2:

http://blog.mozilla.com/nnethercote/2011/07/01 /faster-javascript-parsing/ http://terenceyim.wordpress.com/tag/ucs2/

EDIT: Для всех, кто может столкнуться с этим, обязательно ознакомьтесь с этой ссылкой:

http://mathiasbynens.be/notes/javascript-encoding

25
задан Powerlord 14 January 2016 в 22:06
поделиться