Calcul de la taille d'une chaîne JavaScript en octets
La question tourne autour de la détermination de la taille d'une chaîne JavaScript en octets. Avec une chaîne codée en UTF-8 reçue du serveur mesurant environ 500 Ko, l'enquête explore les facteurs influençant la taille de la chaîne, notamment l'utilisation d'UCS-2 dans JavaScript, les variations potentielles dans les implémentations de JavaScript et l'impact du codage de page ou du type de contenu. .
Détermination de la taille d'une chaîne en JavaScript
Pour obtenir la taille d'une chaîne en octets, l'objet Blob peut être utilisé. Le constructeur Blob prend un tableau contenant la chaîne à mesurer. La propriété size de l'objet Blob résultant fournit ensuite la taille en octets.
Exemples de calcul de la taille d'une chaîne JavaScript
À des fins d'illustration, voici quelques exemples de chaîne tailles calculées à l'aide de l'objet Blob :
console.info(
new Blob(['?']).size, // 4
new Blob(['?']).size, // 4
new Blob(['??']).size, // 8
new Blob(['??']).size, // 8
new Blob(['I\'m a string']).size, // 12
// from Premasagar correction of Lauri's answer for
// strings containing lone characters in the surrogate pair range:
// https://stackoverflow.com/a/39488643/6225838
new Blob([String.fromCharCode(55555)]).size, // 3
new Blob([String.fromCharCode(55555, 57000)]).size // 4 (not 6)
);
Facteurs supplémentaires à prendre en compte
Bien que JavaScript utilise principalement UCS-2, certaines implémentations peuvent s'écarter de cette norme. De plus, l'encodage de la page et le type de contenu peuvent influencer la représentation de la taille de la chaîne. Il est important de vérifier auprès de l'implémentation JavaScript spécifique et de l'environnement du navigateur tout écart potentiel.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3