Данные API хранилища расширений браузера хранятся в кодировке UTF-8? - PullRequest
1 голос
/ 14 июня 2019

В настоящее время мое «лучшее понимание» заключается в том, что строки Javascript, находящиеся в памяти, представлены как DOMString , что означает, что символ Юникода a (латинская строчная буква A) представлен 2 байтами ( в памяти) с использованием UTF-16 кодировки текста.

Эта кодировка сохраняется при использовании API хранилища браузера localStorage , где в документации также указывается, что то, что хранится, является DOMString, то есть вопреки распространенному мифу, обычно можно хранить 10MB и не правильно 5MB в localStorage.

Мой вопрос, однако, касается не window.localStorage, а вопроса о веб-расширениях Storage API browser.storage.local . С chromium я смог проверить (используя getBytesInUse ), что хранимые данные были закодированы с использованием UTF-8, но я пока не нашел никакой документации / спецификации, в которой говорится, что у меня есть только информация выяснили экспериментально.

Ответ на этот вопрос должен указать, если:

Данные API хранилища расширений браузера хранятся в кодировке UTF-8?

и предоставьте ссылку, которая определяет это именно так.

Справочная информация / Обоснование Я разрабатываю расширение для браузера, которое хранит текстовые данные, которые я стараюсь сжать перед хранением, чтобы сэкономить место. Поскольку предоставляемый API хранилища не позволяет хранить необработанные двоичные данные, я стараюсь настроить алгоритм сжатия, чтобы он был наименее расточительным, что делает его контрпродуктивным для преобразования двоичных данных в base64. Однако для эффективного хранения информации в тексте важно, какая кодировка текста используется.

Данные, хранящиеся в расширении браузера, в основном представляют собой сжатую разметку HTML на английском языке, которая больше всего выиграет от хранения данных с использованием кодировки текста UTF-8.

Для справки я проверил / прочитал следующую информацию о String типах, связанных с Javascript-движком и DOM-движком браузера: String , DOMString , USVString `

...